~software-store-developers/software-center/4.0

« back to all changes in this revision

Viewing changes to softwarecenter/view/purchaseview.py

  • Committer: Michael Vogt
  • Date: 2011-11-23 12:36:02 UTC
  • Revision ID: michael.vogt@ubuntu.com-20111123123602-bj3ddi6plvc0ojpm
cherry pick fix to allow webkit to create additional windows
during the purchase

Show diffs side-by-side

added added

removed removed

Lines of Context:
121
121
            self.wk = ScrolledWebkitWindow()
122
122
            self.wk.webkit.connect("new-window-policy-decision-requested", self._on_new_window)
123
123
            # a possible way to do IPC (script or title change)
 
124
            self.wk.webkit.connect("create-web-view", self._on_create_web_view)
 
125
            self.wk.webkit.connect("close-web-view", self._on_close_web_view)
124
126
            self.wk.webkit.connect("script-alert", self._on_script_alert)
125
127
            self.wk.webkit.connect("title-changed", self._on_title_changed)
126
128
            self.wk.webkit.connect("notify::load-status", self._on_load_status_changed)
150
152
        # only for debugging
151
153
        if os.environ.get("SOFTWARE_CENTER_DEBUG_BUY"):
152
154
            glib.timeout_add_seconds(1, _generate_events, self)
153
 
        
 
155
 
 
156
    def _on_close_web_view(self, view):
 
157
        win = view.get_data("win")
 
158
        win.destroy()
 
159
        return True
 
160
 
 
161
    def _on_create_web_view(self, view, frame):
 
162
        win = Gtk.Window()
 
163
        win.set_size_request(400, 400)
 
164
        wk = ScrolledWebkitWindow()
 
165
        wk.webkit.connect("close-web-view", self._on_close_web_view)
 
166
        win.add(wk)
 
167
        win.show_all()
 
168
        # make sure close will work later
 
169
        wk.webkit.set_data("win", win)
 
170
        return wk.webkit
 
171
       
154
172
    def _on_new_window(self, view, frame, request, action, policy):
155
173
        LOG.debug("_on_new_window")
156
174
        import subprocess