Terms of service window is stuck under the payment screen

Bug #625398 reported by Matthew Paul Thomas on 2010-08-27
This bug affects 1 person
Affects Status Importance Assigned to Milestone
software-center (Ubuntu)
Gary Lasker

Bug Description

Ubuntu Software Center, Ubuntu Maverick
software-center trunk r1116, Ubuntu Maverick

1. Navigate to "Get Software" > "For Purchase" > "Hello X Adventure", and choose "Buy...".
2. Sign on.
3. In the payment screen, choose "Terms of Service".
4. Try to bring the terms of service window in front of the payments window to read it.

What happens: You can't.

What should happen: either
* there should not be terms of service (bug 625385, bug 625389), or
* the terms of service should appear above the payment screen by default (fixing bug 618817 would achieve this automatically).

description: updated
Changed in software-center (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → Gary Lasker (gary-lasker)
Gary Lasker (gary-lasker) wrote :

The issue that causes the described focus problems with the Terms of Service popup window is that the current purchase dialog is modal. The attached branch reimplements the dialog as a gtk.Window rather than a gtk.Dialog, with signals replacing the calls to self.response() in the previous implementation. Using the attached branch, the Terms of Service popup window appears correctly in front of the dialog.

Note that one side-effect of using a non-modal window for the purchase dialog is that it becomes possible to refocus the main Software Center window to the foreground before the purchase has been completed (or canceled), leaving the purchase dialog in the background. In this case, the "Buy..." button in the appdetails screen still shows as insensitive (since the purchase is still in-progress). If you then navigate away from the appdetails screen and back again (or to the appdetails screen for a different app for sale, if there was one), it becomes possible to click "Buy..." a second time and this brings up a second purchase dialog. Obviously we'd need to add some code to handle these cases if we continue to use the dialog as non-modal.

It seems to me that a modal dialog is better (at least, until we reimplement the purchase UI inline per bug 618817). I wonder if the simplest and best fix might just be to change the link for the Terms of Service to go to a separate page in the current window rather than open a new window? Note that this is how the Ubuntu SSO Terms of Service link works (see attached screenshots). In fact, do we actually need two separate Terms of Service documents at all?

Gary Lasker (gary-lasker) wrote :
Gary Lasker (gary-lasker) wrote :

The "Terms of Service" link is opened in a new window, as per bug #598578. It was reported as an usability issue to drive the user away from the form while he's not finished completing it. We could try to use one of the suggested alternative implementations if that would help this issue.

Gary Lasker (gary-lasker) wrote :

Thanks Ricardo, that makes good sense. From a usability perspective in Software Center it seems like a JS overlay (one of the alternate suggestions you mentioned from bug 598578) to show the "Terms of Service" would be a nice, elegant approach. How do you feel about that?

Gary Lasker (gary-lasker) wrote :

I've implemented a simple fix that lets the "Terms of Service" window show up correctly above the Purchase Dialog. I think this is a good fix for for now and for the time being we don't need to change anything on the payments service side.

The branch I linked previously makes a good start toward embedding the purchase dialog inline and so we can revisit it later.

Changed in software-center (Ubuntu):
status: Confirmed → Fix Committed
Matthew Paul Thomas (mpt) wrote :

Not fixed in trunk r1116; reopening. <http://people.canonical.com/~mpt/usc-purchase-2010-09-06.ogv>

Perhaps one simple way of fixing this would be to make the terms of service window a dialog as well, so that it's modal to the purchase dialog.

description: updated
Changed in software-center (Ubuntu):
status: Fix Committed → Triaged
Gary Lasker (gary-lasker) wrote :

Thanks for your report, mpt. Hmm, I just tried this again and it is working fine for me in rev 1119 (as it did when I first checked it in). The Terms of Service window appears centered and above the purchase dialog. It can be read, scrolled and closed when finished. In fact, it is set as modal and so must be closed before continuing with the purchase process.

One difference is that I am testing with the staging server (I have to "reset" my access to the the Fluendo DVD Player P3A from a previous test purchase can't do that myself). I'll retest on the production server as soon as I can get that reset.

I'll look at this again when I am home (at a Starbucks currently). In the meantime, can somebody else give this a shot and tell me what you see? Thanks!

Changed in software-center (Ubuntu):
status: Triaged → Incomplete
Matthew Paul Thomas (mpt) wrote :

What is it that you want us to test, exactly? I'm 99% sure that staging server vs. production server is irrelevant to this bug. It's entirely about the kind of window that Ubuntu Software Center opens, not about the Web page displayed inside it.

Changed in software-center (Ubuntu):
status: Incomplete → Triaged
Launchpad Janitor (janitor) wrote :
Download full text (3.1 KiB)

This bug was fixed in the package software-center - 2.1.16

software-center (2.1.16) maverick; urgency=low

  [ Gary Lasker ]
  * softwarecenter/view/purchasedialog.py:
    - make the "Terms of Service" popup display correctly in
      front of the purchase dialog (LP: #625398)
    - tweak the width of the purchase dialog window to
      accomodate the current Ubuntu SSO page width
  * softwarecenter/view/channelpane.py:
    - always default to hiding non-app packages when
      selecting a new channel item in the left navigation
      pane (LP: #630631)
  * softwarecenter/view/softwarepane.py,
    - display a spinner while loading an applist view
      (LP: #630641)

  [ Michael Vogt ]
  * remove debug output
  * merged lp:~mmcg069/software-center/small-fix (many thanks!)
    - prevents the exposure of the carousel icons before they have
      been allocated.
  * verify sortmode when building categories (LP: #618411) and
    ignore categories with unknown/unsupported ones
  * merged lp:~mmcg069/software-center/cleanup-software-section-code
    that fixes LP: #624786 (many thanks)
  * make sure there is always a toplevel transaction for a pending
    purchase even if s-c waits for the for-pay repository to become
    available (LP: #627608)
  * softwarecenter/view/purchasedialog.py:
    - support both "failure_reason" and "failures" as error strings
      from the agent
  * merged lp:~mmcg069/software-center/Bug617443 (LP: #617443)
  * merged lp:~mmcg069/software-center/bug628714 (LP: #628714)
  * merged lp:~mmcg069/software-center/hover-highlight-tweaks to
    use correct prelight color

  [ Kiwinote ]
  * data/featured.menu.in:
    - fretsonfire instead of fretsonfire-game, due to desktop file changes
  * data/software-center.menu.in:
    - use correct icon for system category, thanks vish!
  * softwarecenter/apt/aptcache.py:
    - don't crash on broken dependencies (LP: #630579)
      (testcase: acl2-books)
  * softwarecenter/db/application.py:
    - set pkgname for deb files correctly (LP: #628787)
      (testcase: replace _ with - in filename of an outdated deb file of s-c)
  * softwarecenter/view/appdetailsview_gtk.py:
    - never display the description of a different pkg
      (testcase: browse to any appdetails view and then to fluendo dvd player)
    - don't crash if icon for 'where is it' is None (LP: #629845)
    - don't crash if icon for addon can not be opened (LP: #629937)
    - don't display add-ons when we have an error
      (testcase: deb file of wrong architecture)
  * softwarecenter/view/appview.py:
    - fix startup crash (LP: #618411)
  * softwarecenter/view/availablepane.py:
    - set section for subcategory view (this means that we now have a bg)
  * softwarecenter/view/installedpane.py:
    - don't return to installed overview list on reopening db
  * softwarecenter/view/widgets/pathbar_gtk_atk.py:
    - fix visual corruption on appending pathbar part
      (testcase: channelpane > details > different channelpane > details)
 -- Michael Vogt <email address hidden> Tue, 07 Sep ...


Changed in software-center (Ubuntu):
status: Triaged → Fix Released
Gary Lasker (gary-lasker) wrote :

Reopening per mpt's report that this is still not working for him.

Changed in software-center (Ubuntu):
status: Fix Released → Triaged
Gary Lasker (gary-lasker) wrote :

So obviously this has been working fine for me. However, I am running Compiz on my machine. Once I had some time back home I found that when I switched to Metacity I could reproduce the problem mpt describes. mpt, I assume you're running Metacity then.

I've attached a branch that implements a fix that I've tested with both Compiz and Metacity and it works fine for both.

Terms of Service FTW!!

Changed in software-center (Ubuntu):
status: Triaged → In Progress
Changed in software-center (Ubuntu):
status: In Progress → Fix Committed
Kiwinote (kiwinote) wrote :

software-center (2.1.17) maverick; urgency=low

  [ Gary Lasker ]
  * softwarecenter/view/purchasedialog.py:
    - make popup window a modal dialog so it works with
      metacity too (LP: #625398)
  * softwarecenter/view/softwarepane.py,
    - factor show/hide nonapps functionality up to the
      SoftwarePane base class, cleanup redundant code
    - enable show/hide nonapps in the "Provided by Ubuntu"
      subitem of "Installed Software" per updated spec
      (LP: #556375)
    - add test for show/hide nonapps
  * softwarecenter/backend/channel.py:
    - small fix in debug code

  [ Michael Vogt ]
  * merged lp:~mpt/software-center/basic-css, improves the
    style of the purchase dialog (thanks!)
  * merged lp:~mmcg069/software-center/small-fixes that fixes
    minor drawing error with the paging dot drawing outside its
    allocated area (thanks!)
  * merged lp:~mpt/software-center/help-3.0 (thanks!)
  * softwarecenter/gwibber_helper.py:
    - to find out if gwibber has accounts setup, poke around in
      gconf instead of doing a dbus call. The dbus call will trigger
      a gwibber start on each s-c start

  [ Kiwinote ]
  * softwarecenter/view/appdetailsview_gtk.py:
    - set action_bar.pkg_state as well as local state
      (LP: #629230, LP: #632889)
      this means that the button will always take the right action
      (testcase: click 'install', cancel auth, click 'install', auth)
    - don't show warning in pkgstatusbar while transaction is in progress,
      instead show 'installing..', 'updating..', etc
      (test case: install any deb file and watch the pkgstatusbar)
  * softwarecenter/view/catview.py:
    - sort categories alphabetically (LP: #633238)
  * softwarecenter/view/catview_gtk.py:
    - skip the carousel transition if we are hovering above a poster, or if
      the poster is selected (ie hold down mouse, but don't release)

  [ Mohamed Amine IL Idrissi ]
  * Fix bug that allowed silent removal of conflicting packages
    (LP: #554319)
  * Fix missing icons in the remove alerts

Date: Thu, 09 Sep 2010 09:11:23 +0200
Changed-By: Michael Vogt <michael.vogt at ubuntu.com>
Maintainer: Michael Vogt <mvo at ubuntu.com>

Changed in software-center (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers