static gboolean qtcWindowClientEvent(GtkWidget *widget, GdkEventClient *event, void *data) { QTC_UNUSED(data); if (gdk_x11_atom_to_xatom(event->message_type) == qtc_x11_qtc_active_window) { if (event->data.l[0]) { qtcCurrentActiveWindow = widget; } else if (qtcCurrentActiveWindow == widget) { qtcCurrentActiveWindow = 0L; } gtk_widget_queue_draw(widget); } else if (gdk_x11_atom_to_xatom(event->message_type) == qtc_x11_qtc_titlebar_size) { qtcGetWindowBorderSize(true); GtkWidget *menubar = qtcWindowGetMenuBar(widget, 0); if (menubar) { gtk_widget_queue_draw(menubar); } } else if (gdk_x11_atom_to_xatom(event->message_type) == qtc_x11_qtc_toggle_menubar) { if (opts.menubarHiding & HIDE_KWIN && qtcWindowToggleMenuBar(widget)) { gtk_widget_queue_draw(widget); } } else if (gdk_x11_atom_to_xatom(event->message_type) == qtc_x11_qtc_toggle_statusbar) { if (opts.statusbarHiding & HIDE_KWIN && qtcWindowToggleStatusBar(widget)) { gtk_widget_queue_draw(widget); } } return false; }
static bool wait_for_retrieval(GtkClipboard *clipboard, retrieval_context *r_context) { if (r_context->completed) // the request completed synchronously return true; Display *xDisplay = GDK_DISPLAY(); checkEventContext context; context.cbWidget = NULL; context.selAtom = gdk_x11_atom_to_xatom(gdk_atom_intern("GDK_SELECTION", FALSE)); // Send X events which are relevant to the ongoing selection retrieval // to the clipboard widget. Wait until either the operation completes, or // we hit our timeout. All other X events remain queued. int select_result; int cnumber = ConnectionNumber(xDisplay); fd_set select_set; FD_ZERO(&select_set); FD_SET(cnumber, &select_set); ++cnumber; struct timeval tv; do { XEvent xevent; while (XCheckIfEvent(xDisplay, &xevent, checkEventProc, (XPointer) &context)) { if (xevent.xany.type == SelectionNotify) DispatchSelectionNotifyEvent(context.cbWidget, &xevent); else DispatchPropertyNotifyEvent(context.cbWidget, &xevent); if (r_context->completed) return true; } tv.tv_sec = 0; tv.tv_usec = kClipboardTimeout; select_result = select(cnumber, &select_set, NULL, NULL, &tv); } while (select_result == 1); #ifdef DEBUG_CLIPBOARD printf("exceeded clipboard timeout\n"); #endif r_context->timed_out = true; return false; }
gboolean nsGTKRemoteService::HandlePropertyChange(GtkWidget *aWidget, GdkEventProperty *pevent, nsIWeakReference *aThis) { if (pevent->state == GDK_PROPERTY_NEW_VALUE) { Atom changedAtom = gdk_x11_atom_to_xatom(pevent->atom); return HandleNewProperty(GDK_WINDOW_XWINDOW(pevent->window), GDK_DISPLAY(), pevent->time, changedAtom, aThis); } return FALSE; }
static GdkFilterReturn hd_home_plugin_item_event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) { if (((XClientMessageEvent*)xevent)->type == ClientMessage && ((XClientMessageEvent*)xevent)->message_type == gdk_x11_atom_to_xatom (show_settings_atom)) { g_signal_emit (GTK_WIDGET (data), signals[SHOW_SETTINGS], 0); return GDK_FILTER_REMOVE; } return GDK_FILTER_CONTINUE; }
static void panel_background_monitor_init (PanelBackgroundMonitor *monitor) { monitor->screen = NULL; monitor->gdkwindow = NULL; monitor->xwindow = None; monitor->gdkatom = gdk_atom_intern ("_XROOTPMAP_ID", FALSE); monitor->xatom = gdk_x11_atom_to_xatom (monitor->gdkatom); monitor->gdkpixmap = NULL; monitor->gdkpixbuf = NULL; monitor->display_grabbed = FALSE; }
gboolean nsGTKRemoteService::HandlePropertyChange(GtkWidget *aWidget, GdkEventProperty *pevent, nsIWeakReference *aThis) { if (pevent->state == GDK_PROPERTY_NEW_VALUE) { Atom changedAtom = gdk_x11_atom_to_xatom(pevent->atom); #if (MOZ_WIDGET_GTK == 2) XID window = GDK_WINDOW_XWINDOW(pevent->window); #else XID window = gdk_x11_window_get_xid(gtk_widget_get_window(aWidget)); #endif return HandleNewProperty(window, GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), pevent->time, changedAtom, aThis); } return FALSE; }