Beispiel #1
0
 def _forward_event_to_parent(self, widget, event):
     event.window       = self.parent.window
     parent_x, parent_y = widget.translate_coordinates(self.parent,
                                                       int(event.x),
                                                       int(event.y))
     event.x, event.y   = float(parent_x), float(parent_y)
     gtk.main_do_event(event)
Beispiel #2
0
def drawing_event(gobj, eventType, x, y):
    ev = gtk.gdk.Event(eventType)
    ev.x = x
    ev.y = y
    ev.window = gobj.window
    ev.set_screen(gobj.get_screen())
    gtk.main_do_event(ev)
	def entry_keypress_cb(self, widget, event):
		prefix = self.get_text()

		if event.keyval == KEY_TAB and not event.state & MOD_MASK and (
				prefix and not self.get_selection_bounds() and
				self.get_position() == len(prefix) and
				not self.completed):
			liststore = self.completion_getter(prefix)

			if len(liststore) == 0:
				# Users can press Tab twice in this circumstance to confirm.
				self.completed = True
			if len(liststore) == 1:
				self.set_text(liststore[0][0])
				self.set_position(-1)
				self.completed = True
			else:
				self.completing = prefix
				self.completion.set_model(liststore)
				self.completion.complete()
				# GtkEntryCompletion apparently needs a little nudge
				gtk.main_do_event(gtk.gdk.Event(gtk.gdk.KEY_PRESS))
			return True
		else:
			self.completion.set_model(None)
			return False
Beispiel #4
0
 def on_click_anywhere(w_ev,data=None):
     if w_ev.type != gtk.gdk.BUTTON_PRESS:
         gtk.main_do_event(w_ev)
         return
     
     if hash(w_ev)==hash(ev) and w_ev.x==orig_ev.x and w_ev.y==orig_ev.y:
         # this check exists because the function would be triggered by
         # the click on the previewer color. Because hash is not enough,
         # we must check if we moved too (the event was copied because it
         # will be modified internally)
         return
     
     if w_ev.window not in (self.palette.window,(self.grayscalePalette and self.grayscalePalette.window),self.noColor.window):
         # clicked outside of the palette, restore original color
         colorWidget.set_color(*self._prevColor)
     
     self.palette.disconnect(self._mouseOverPalette_id)
     self.palette.disconnect(self.palette_leave_id)
     
     self.noColor.disconnect(self._mouseOverNoColor_id)
     self.noColor.disconnect(self.noColor_leave_id)
     
     if self.grayscalePalette:
         self.grayscalePalette.disconnect(self._mouseOverGrayscale_id)
         self.grayscalePalette.disconnect(self.grayscalePalette_leave_id)
     
     self.toggle_picker_icon(False)
     gtk.gdk.event_handler_set(gtk.main_do_event)
     
     for widget in self._previewersSignals:
         # reconnect all the previewers 'onclick' signals
         self._previewersSignals[widget]['clicked_id'] = widget.connect('clicked',self.on_previewer_clicked)
     
     gtk.main_do_event(w_ev)
Beispiel #5
0
def cb_any_event(event, onboard):
    # Update layout on keyboard group changes
    # XkbStateNotify maps to gtk.gdk.NOTHING
    # https://bugzilla.gnome.org/show_bug.cgi?id=156948
    if event.type == gtk.gdk.NOTHING:
        onboard.update_layout()
    gtk.main_do_event(event)
Beispiel #6
0
 def _filter_callback(self, event):
     if event.type in [
             gdk.BUTTON_PRESS, gdk.BUTTON_RELEASE, gdk.KEY_PRESS,
             gdk.KEY_RELEASE, gdk.MOTION_NOTIFY, gdk.SCROLL
     ]:
         self._idle = 0
     gtk.main_do_event(event)
Beispiel #7
0
def fake_button_press(window):
    event = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS)
    event.button = 1
    event.window = window
    event.x = 0.5
    event.y = 0.5
    gtk.main_do_event(event)
 def _emit_box_event(self, event):
     # Fake an event such that the FloatBox can pick up the newly
     # created widget.
     x, y = self.box._translate_event_coordinates(event)
     event.window = self.box.window
     event.x = float(x)
     event.y = float(y)
     gtk.main_do_event(event)
Beispiel #9
0
 def _event_handler(self, event):
     # Separate method so we can use return inside
     self._check_event(event)
     self._times.append(event.get_time())
     gtk.main_do_event(event)
     last_time = self._times.pop()
     if last_time > self._last_time:
         self._last_time = last_time
Beispiel #10
0
def tooltip_handler(event):
    gtk.main_do_event(event)
    if event.type == gdk.MOTION_NOTIFY:
        # print "leave", time.time()
        update_tooltip()
    elif event.type == gdk.LEAVE_NOTIFY:
        # print "leave", time.time()
        hide_tooltip()
Beispiel #11
0
def tooltip_handler(event):
    gtk.main_do_event(event)
    if event.type == gdk.MOTION_NOTIFY:
        # print "leave", time.time()
        update_tooltip()
    elif event.type == gdk.LEAVE_NOTIFY:
        # print "leave", time.time()
        hide_tooltip()
Beispiel #12
0
def send_backspace(widget):
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysyms.BackSpace)
    event.hardware_keycode = 22
    event.window = widget.window
#    widget.event(event)
    gtk.main_do_event(event)
    refresh_gui(DELAY)
Beispiel #13
0
def send_delete(widget):
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysyms.Delete)
    event.hardware_keycode = 107
    event.window = widget.window
    gtk.main_do_event(event)
#    widget.event(event)
    refresh_gui(DELAY)
Beispiel #14
0
 def _emit_box_event(self, event):
     # Fake an event such that the FloatBox can pick up the newly
     # created widget.
     x, y = self.box._translate_event_coordinates(event)
     event.window = self.box.window
     event.x = float(x)
     event.y = float(y)
     gtk.main_do_event(event)
Beispiel #15
0
 def _filter_callback(self, event):
     if event.type in [gdk.BUTTON_PRESS,
                       gdk.BUTTON_RELEASE,
                       gdk.KEY_PRESS,
                       gdk.KEY_RELEASE,
                       gdk.MOTION_NOTIFY,
                       gdk.SCROLL]:
         self._idle = 0
     gtk.main_do_event(event)
Beispiel #16
0
		def eventHandler(self, event):
			"""
			Intercepts GTK calls, to attempt to launch sugarbot.
			
			Attempts to launch sugarbot at every gdk.Event emitted.
			"""
			if event is not None:
				gtk.main_do_event(event)
			self.tryToLaunchSugarbotActivity()
Beispiel #17
0
        def fix(type_):
            ev = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
            ev.window = WINDOW.window
            import time

            ev.time = long(time.time())
            ev.state = 65363
            ev.keyval = 114
            gtk.main_do_event(ev)
    def __event(self, event):
        if event.type != gtk.gdk.SCROLL:
            event.x += self.__dx
            event.y += self.__dy 

        # modifying event.window is a necessary evil, made okay because
        # nobody else should tie to any TreeViewHints events ever.
        event.window = self.__target.get_bin_window()

        gtk.main_do_event(event)
        return True
Beispiel #19
0
    def eventHandler(self,event=None):
        """ Intercepts all GDK events.  We then send them off to a separate
        handler method (to keep things clean), and then have GTK execute
        whatever the event is supposed to do.
        """
        if event is not None:
            gtk.main_do_event(event)
            self.handleEvent(event)

        if event.type is not gtk.gdk.EXPOSE:
            self.idletime = 0

        return True
Beispiel #20
0
 def event_handler(event):
     if event.type == gdk.KEY_PRESS:
         if event.keyval == gtk.keysyms.q:
             self.quit()
         elif event.keyval == gtk.keysyms.p:
             self.submit()
         elif self.msg and event.keyval == gtk.keysyms.a:
             self.approve(self.msg)
         elif self.msg and event.keyval == gtk.keysyms.d:
             self.discard(self.msg)
         elif self.msg and event.keyval == gtk.keysyms.s:
             self.skip(self.msg)
     gtk.main_do_event(event)
Beispiel #21
0
 def event_handler(event):
     if event.type == gdk.KEY_PRESS:
         if event.keyval == gtk.keysyms.q:
             self.quit()
         elif event.keyval == gtk.keysyms.p:
             self.submit()
         elif self.msg and event.keyval == gtk.keysyms.a:
             self.approve(self.msg)
         elif self.msg and event.keyval == gtk.keysyms.d:
             self.discard(self.msg)
         elif self.msg and event.keyval == gtk.keysyms.s:
             self.skip(self.msg)
     gtk.main_do_event(event)
Beispiel #22
0
def test_tooltip_overlapping_widgets():
    '''
    Ensure that the correct tooltip is shown when two widgets inside a
    ``gtk.Layout`` overlaps each other.

    :bug: #550345
    '''
    b1 = gtk.Button('1')
    b1.set_size_request(100, 100)
    b1.set_tooltip_text('button1')

    b2 = gtk.Button('2')
    b2.set_size_request(100, 100)
    b2.set_tooltip_text('button2')

    # Note that in this layout b2 overlaps b1.
    layout = gtk.Layout()
    layout.set_size_request(400, 400)
    layout.put(b1, 0, 0)
    layout.put(b2, 50, 0)
    win = gtk.Window()
    win.add(layout)
    win.show_all()

    # By setting the timeout to 0 the tooltip should show after one
    # iteration of the mainloop.
    settings = gtk.settings_get_default()
    settings.set_property('gtk-tooltip-timeout', 0)

    # Simulate a motion notify over the second button on a location
    # where it overlaps the first button.
    ev = gdk.Event(gdk.MOTION_NOTIFY)
    ev.window = win.window
    ev.x = ev.x_root = 80.0
    ev.y = ev.y_root = 10.0
    ev.is_hint = False

    # GTK gets the motion notify event and shows the tooltip in
    # response.
    gtk.main_do_event(ev)
    gtk.main_iteration()

    # Find the tooltip window in the toplevel list.
    tooltip_win = None
    for w in gtk.window_list_toplevels():
        if w.name == 'gtk-tooltip':
            tooltip_win = w

    # The tooltip label shown should be the second buttons.
    tooltip_label = tooltip_win.get_child().get_child().get_children()[1]
    assert tooltip_label.get_text() == 'button2'
Beispiel #23
0
def key_press(ww, e):
	if editing: return

	keyname = gtk.gdk.keyval_name(e.keyval)
	# Modifier keys to ignore.
	mods = ["Control_L", "Control_R",
		"Shift_L", "Shift_R",
		"Alt_L", "Alt_R",
		"Meta_L", "Meta_R",
		"Up", "Down", "Left", "Right",
	]
	if keyname in mods:
		return True

	if (keyname == "Caps_Lock") or (keyname == "VoidSymbol"):
		global w
		kbwin = w.get_data("kbwin")
		if kbwin.get_visible():
			kbwin.hide()
		else:
			kbwin.show_all()
		return True

	if (keyname == "BackSpace") or (keyname == "Delete"):
		do_str("drop")
		do_update()
		return True

	if (keyname == "Escape"):
		do_str("clear")
		do_update()
		return True

	if (keyname == "Return") or (keyname == "KP_Enter"):
		do_str("dup")
		do_update()
		return True

	if (keyname == "d") and (e.state & gtk.gdk.CONTROL_MASK):
		#w.hide()
		w.iconify()
		return True

	sm = ww.get_model()
	it = sm.get_iter_first()
	sm.remove(it)
	path = sm.get_string_from_iter(sm.append())
	ww.set_cursor(path, ww.get_column(1), True)
	gtk.main_do_event(e.copy())
	return True
Beispiel #24
0
    def entry_keypress_cb(self, widget, event):
        if event.keyval == self.KEY_TAB:
            liststore = self.completion_getter(self.get_text())

            if len(liststore) == 1:
                self.set_text(liststore[0][0])
                self.set_position(-1)
            else:
                self.completion.set_model(liststore)
                self.completion.complete()
                gtk.main_do_event(gtk.gdk.Event(gtk.gdk.KEY_PRESS))
            return True
        else:
            self.completion.set_model(None)
            return False
Beispiel #25
0
    def event_handler(self, event):
        """
        Handle mouse events
        """

        if event.type == gtk.gdk.BUTTON_PRESS:
            if event.button != 1:
                print "Canceled by the user"
                exit(EXIT_CANCEL)
            # grab the keyboard only when selection started
            gtk.gdk.keyboard_grab(self.root)
            self.started = True
            self.start_x = int(event.x)
            self.start_y = int(event.y)
            self.move(self.x, self.y)

        elif event.type == gtk.gdk.KEY_RELEASE:
            if gtk.gdk.keyval_name(event.keyval) == "Escape":
                print "Canceled by the user"
                exit(EXIT_CANCEL)

        elif event.type == gtk.gdk.MOTION_NOTIFY:
            if not self.started:
                return

            self.set_rect_size(event)
            self.draw()

            if self.width > 3 and self.height > 3:
                self.resize(self.width, self.height)
                self.move(self.x, self.y)
                self.show_all()

        elif event.type == gtk.gdk.BUTTON_RELEASE:
            if not self.started:
                return

            self.set_rect_size(event)

            self.ungrab()
            self.hide()
            gobject.timeout_add(100, self.screenshot)
        else:
            gtk.main_do_event(event)
Beispiel #26
0
    def event_handler(self, event):
        """
        Handle mouse events
        """

        if event.type == gtk.gdk.BUTTON_PRESS:
            if event.button != 1:
                print "Canceled by the user"
                exit(EXIT_CANCEL)
            # grab the keyboard only when selection started
            gtk.gdk.keyboard_grab(self.root)
            self.started = True
            self.start_x = int(event.x)
            self.start_y = int(event.y)
            self.move(self.x, self.y)

        elif event.type == gtk.gdk.KEY_RELEASE:
            if gtk.gdk.keyval_name(event.keyval) == "Escape":
                print "Canceled by the user"
                exit(EXIT_CANCEL)

        elif event.type == gtk.gdk.MOTION_NOTIFY:
            if not self.started:
                return

            self.set_rect_size(event)
            self.draw()

            if self.width > 3 and self.height > 3:
                self.resize(self.width, self.height)
                self.move(self.x, self.y)
                self.show_all()

        elif event.type == gtk.gdk.BUTTON_RELEASE:
            if not self.started:
                return

            self.set_rect_size(event)

            self.ungrab()
            self.hide()
            gobject.timeout_add(100, self.screenshot)
        else:
            gtk.main_do_event(event)
Beispiel #27
0
    def __event(self, event):
        if not self.__view:
            return True

        # hack: present the main window on key press
        if event.type == gtk.gdk.BUTTON_PRESS:
            # hack: present is overridden to present all windows.
            # bypass to only select one
            gtk.Window.present(get_top_parent(self.__view))

        if event.type != gtk.gdk.SCROLL:
            event.x += self.__dx
            event.y += self.__dy

        # modifying event.window is a necessary evil, made okay because
        # nobody else should tie to any TreeViewHints events ever.
        event.window = self.__view.get_bin_window()

        gtk.main_do_event(event)

        return True
Beispiel #28
0
 def event_handler(event):
     if (event.type == gdk.KEY_PRESS and
             event.state & gdk.CONTROL_MASK and
             event.keyval == gtk.keysyms.q):
         os._exit(0)
     gtk.main_do_event(event)
Beispiel #29
0
 def event_handler(event):
     if (event.type == gdk.KEY_PRESS
             and event.state & gdk.CONTROL_MASK
             and event.keyval == gtk.keysyms.q):
         os._exit(0)
     gtk.main_do_event(event)
Beispiel #30
0
 def on_any_event(self, event):
     if event.type == gtk.gdk.MOTION_NOTIFY: return
     elif event.type == gtk.gdk.BUTTON_RELEASE:
         self.clicked_menu.popup(None,None,gtk.status_icon_position_menu,1,event.time,self.statusIcon)
     gtk.main_do_event(event)
Beispiel #31
0
 def _on_event(event):
     if gtk.gdk.MOTION_NOTIFY == event.type:
         self.cursor_handler.refresh()
     gtk.main_do_event(event)
Beispiel #32
0
 def _on_event(event):
     if gtk.gdk.MOTION_NOTIFY == event.type:
         self.cursor_handler.refresh()
     gtk.main_do_event(event)
Beispiel #33
0
 def _event_handler(self, event):
     # Separate method so we can use return inside
     self._check_event(event)
     gtk.main_do_event(event)
Beispiel #34
0
 def _event_handler(self, event):
     # Separate method so we can use return inside
     self._check_event(event)
     gtk.main_do_event(event)
Beispiel #35
0
 def myfilter(ev, data=None):
     print("ev %s" % (ev.type,))
     if ev.type == gtk.gdk.CONFIGURE:
         self.ev = ev
         gtk.main_quit()
     gtk.main_do_event(ev)
Beispiel #36
0
 def allGDKeventHandler(self, event, data=None):
     doPrint = 0
     if data is not None:  # this is keybinder "activated" or menu "hide"
         if (data == menu_item):  # this is # menu "hide" calling
             # this is a result of the menu_item "hide" below;
             # set all shortcut keys to "released";
             # but this may run before we execute our `on_activate`
             # so reset by calling a callback after certain time
             glib.timeout_add(500, self.reset_keystatus_cb)
             # reset listening of menu_item; maybe not needed?
             #~ if self.chideid != -1:
             #~ menu_item.get_parent().disconnect(self.chideid)
             #~ self.chideid = -1
         else:  # this is keybinder "activated" calling
             # set all shortcut keys to "pressed":
             for tkey in self.keystatus.keys():
                 self.keystatus[tkey] = 1
             # listen to master `menu_item`' window?
             # it's parent Menu fires, but has data: None!
             # fix here: simply pass menu_item as (otherwise
             # useless) data
             if self.chideid == -1:
                 self.chideid = menu_item.get_parent().connect(
                     "hide", self.allGDKeventHandler, menu_item)
         doPrint = 1
     else:  # data is None - this is Gdk event
         # event.keyval: 65513;
         # gtk.gdk.keyval_name(event.keyval): 'Alt_L'
         # tkey = 'Alt'
         # but problem with tkey = 'c'; keyval_name = 'Escape'
         # so work only with numeric keyvals:
         # 65513 Alt_L; 65514 Alt_R; 65507 Control_L; 65508 Control_R; 99 c
         # but then numeric comparison (as of now) cannot adapt to other
         # shortcuts that <Ctrl><Alt><c>!!
         if event.type == gtk.gdk.KEY_RELEASE:
             # old string comparison:
             #~ for tkey in self.keystatus.keys():
             #~ if tkey in gtk.gdk.keyval_name(event.keyval):
             #~ self.keystatus[tkey] = 0
             # numeric comparison:
             if event.keyval == 65513 or event.keyval == 65514:
                 self.keystatus['Alt'] = 0
             if event.keyval == 65507 or event.keyval == 65508:
                 self.keystatus['Control'] = 0
             if event.keyval == 99:
                 self.keystatus['c'] = 0
             doPrint = 2
         elif event.type == gtk.gdk.KEY_PRESS:
             # old string comparison:
             #~ for tkey in self.keystatus.keys():
             #~ if tkey in gtk.gdk.keyval_name(event.keyval):
             #~ self.keystatus[tkey] = 1
             # numeric comparison:
             if event.keyval == 65513 or event.keyval == 65514:
                 self.keystatus['Alt'] = 1
             if event.keyval == 65507 or event.keyval == 65508:
                 self.keystatus['Control'] = 1
             if event.keyval == 99:
                 self.keystatus['c'] = 1
             doPrint = 2
         # MUST have main_do_event at end,
         # else Gnome stops responding to keypresses!
         gtk.main_do_event(event)
     # at end, print for debug (if commenting, leave the pass at end)
     if doPrint > 0:
         #~ print "allGDK", self.isAnyShortcutKeyHeld(), self.keystatus, hex(id(self.keystatus))
         #~ if doPrint > 1:
         #~ print event.keyval, gtk.gdk.keyval_name(event.keyval),
         #~ print event #, menu_item.get_parent().get_parent()
         pass