static VALUE rbx11_xid_table_lookup(int argc, VALUE *argv, VALUE self) { VALUE arg[2]; GdkPixmap* win = NULL; rb_scan_args(argc, argv, "11", &arg[0], &arg[1]); switch(argc) { case 1: win = gdk_xid_table_lookup(NUM2UINT(arg[0])); break; case 2: #if GTK_CHECK_VERSION(2,2,0) win = gdk_xid_table_lookup_for_display(RVAL2GOBJ(arg[0]), NUM2UINT(arg[1])); #else win = gdk_xid_table_lookup(NUM2UINT(arg[1])); rb_warn("Not supported in GTK+-2.0.x."); #endif break; } if (win == NULL) return Qnil; else { return GOBJ2RVAL(win); } }
static void avatar_image_add_filter (EmpathyAvatarImage *avatar_image) { Window window; GdkWindow *gdkwindow; gint mask; mask = PropertyChangeMask; window = GDK_ROOT_WINDOW (); gdkwindow = gdk_xid_table_lookup (window); gdk_error_trap_push (); if (gdkwindow) { XWindowAttributes attrs; XGetWindowAttributes (gdk_display, window, &attrs); mask |= attrs.your_event_mask; } XSelectInput (gdk_display, window, mask); gdk_error_trap_pop (); gdk_window_add_filter (NULL, avatar_image_filter_func, avatar_image); }
gboolean xfwmPixmapRenderGdkPixbuf (xfwmPixmap * pm, GdkPixbuf *pixbuf) { GdkPixbuf *src; GdkPixmap *destw; GdkVisual *gvisual; GdkColormap *cmap; gint width, height; gint dest_x, dest_y; g_return_val_if_fail (pm != NULL, FALSE); g_return_val_if_fail (pm->pixmap != None, FALSE); g_return_val_if_fail (pm->mask != None, FALSE); destw = gdk_xid_table_lookup (pm->pixmap); if (destw) { g_object_ref (G_OBJECT (destw)); } else { destw = gdk_pixmap_foreign_new (pm->pixmap); } if (!destw) { g_warning ("Cannot get pixmap"); return FALSE; } gvisual = gdk_screen_get_system_visual (pm->screen_info->gscr); cmap = gdk_x11_colormap_foreign_new (gvisual, pm->screen_info->cmap); if (!cmap) { g_warning ("Cannot create colormap"); g_object_unref (destw); return FALSE; } width = MIN (gdk_pixbuf_get_width (pixbuf), pm->width); height = MIN (gdk_pixbuf_get_height (pixbuf), pm->height); /* Add 1 for rounding */ dest_x = (pm->width - width + 1) / 2; dest_y = (pm->height - height + 1) / 2; src = gdk_pixbuf_get_from_drawable(NULL, GDK_DRAWABLE (destw), cmap, dest_x, dest_y, 0, 0, width, height); gdk_pixbuf_composite (pixbuf, src, 0, 0, width, height, 0, 0, 1.0, 1.0, GDK_INTERP_NEAREST, 0xFF); gdk_draw_pixbuf (GDK_DRAWABLE (destw), NULL, src, 0, 0, dest_x, dest_y, width, height, GDK_RGB_DITHER_NONE, 0, 0); g_object_unref (cmap); g_object_unref (src); g_object_unref (destw); return TRUE; }
static PyObject *PyFFFont_removeGtkWindowToMainEventLoop(PyFF_Font *self, PyObject *args) { PyObject *result = NULL; PyObject *temp; int v = 0; if ( !PyArg_ParseTuple( args, "i", &v )) return( NULL ); gpointer gdkwindow = gdk_xid_table_lookup( v ); if( gdkwindow ) { Display* d = GDK_WINDOW_XDISPLAY(gdkwindow); int fd = XConnectionNumber(d); if( fd ) { gpointer udata = 0; GDrawRemoveReadFD( 0, fd, udata ); } } /* Boilerplate to return "None" */ Py_INCREF(Py_None); result = Py_None; return result; }
static PyObject *PyFFFont_getGtkWindowMainEventLoopFD(PyFF_Font *self, PyObject *args) { PyObject *result = NULL; PyObject *temp; int v = 0; if ( !PyArg_ParseTuple( args, "i", &v )) return( NULL ); gpointer gdkwindow = gdk_xid_table_lookup( v ); if( gdkwindow ) { Display* d = GDK_WINDOW_XDISPLAY(gdkwindow); int fd = XConnectionNumber(d); if( fd ) { return( Py_BuildValue("i", fd )); } } /* Boilerplate to return "None" */ Py_INCREF(Py_None); result = Py_None; return result; }
void meta_ui_unmap_frame (MetaUI *ui, Window xwindow) { GdkWindow *window; window = gdk_xid_table_lookup (xwindow); if (window) gdk_window_hide (window); }
void meta_ui_map_frame (MetaUI *ui, Window xwindow) { GdkWindow *window; window = gdk_xid_table_lookup (xwindow); if (window) gdk_window_show_unraised (window); }
GdkPixbuf* _lightdash_gdk_pixbuf_get_from_pixmap (GdkPixbuf *dest, Pixmap xpixmap, int src_x, int src_y, int dest_x, int dest_y, int width, int height) { GdkDrawable *drawable; GdkPixbuf *retval; GdkColormap *cmap; retval = NULL; cmap = NULL; drawable = gdk_xid_table_lookup (xpixmap); if (drawable) g_object_ref (G_OBJECT (drawable)); else drawable = gdk_pixmap_foreign_new (xpixmap); if (drawable) { cmap = get_cmap (drawable); /* GDK is supposed to do this but doesn't in GTK 2.0.2, * fixed in 2.0.3 */ if (width < 0) gdk_drawable_get_size (drawable, &width, NULL); if (height < 0) gdk_drawable_get_size (drawable, NULL, &height); retval = gdk_pixbuf_get_from_drawable (dest, drawable, cmap, src_x, src_y, dest_x, dest_y, width, height); } if (cmap) g_object_unref (G_OBJECT (cmap)); if (drawable) g_object_unref (G_OBJECT (drawable)); return retval; }
gboolean meta_ui_window_should_not_cause_focus (Display *xdisplay, Window xwindow) { GdkWindow *window; window = gdk_xid_table_lookup (xwindow); /* we shouldn't cause focus if we're an override redirect * toplevel which is not foreign */ if (window && gdk_window_get_type (window) == GDK_WINDOW_TEMP) return TRUE; else return FALSE; }
gboolean meta_ui_window_is_widget (MetaUI *ui, Window xwindow) { GdkWindow *window; window = gdk_xid_table_lookup (xwindow); if (window) { void *user_data = NULL; gdk_window_get_user_data (window, &user_data); return user_data != NULL && user_data != ui->frames; } else return FALSE; }
nsresult EventsPluginInstance::PlatformCreateWindow(nsPluginWindow* window) { #ifdef EVENTSPLUGIN_DEBUG printf("EventsPluginInstance::PlatformCreateWindow %lx\n", (long)window); #endif Window x_window = (Window)window->window; GdkWindow *gdk_window = (GdkWindow *)gdk_xid_table_lookup(x_window); if (!gdk_window) { fprintf(stderr, "NO WINDOW!!!\n"); return NS_ERROR_FAILURE; } fPlatform.moz_box = gtk_mozbox_new(gdk_window); wChild = gtk_entry_new(); gtk_container_add(GTK_CONTAINER(fPlatform.moz_box), wChild); gtk_widget_show_all(fPlatform.moz_box); return NS_OK; }
GdkPixbuf* meta_gdk_pixbuf_get_from_pixmap (GdkPixbuf *dest, Pixmap xpixmap, int src_x, int src_y, int dest_x, int dest_y, int width, int height) { GdkDrawable *drawable; GdkPixbuf *retval; GdkColormap *cmap; retval = NULL; cmap = NULL; drawable = gdk_xid_table_lookup (xpixmap); if (drawable) g_object_ref (G_OBJECT (drawable)); else drawable = gdk_pixmap_foreign_new (xpixmap); if (drawable) { cmap = get_cmap (drawable); retval = gdk_pixbuf_get_from_drawable (dest, drawable, cmap, src_x, src_y, dest_x, dest_y, width, height); } if (cmap) g_object_unref (G_OBJECT (cmap)); if (drawable) g_object_unref (G_OBJECT (drawable)); return retval; }
static gboolean xfwmPixmapDrawFromGdkPixbuf (xfwmPixmap * pm, GdkPixbuf *pixbuf) { GdkPixmap *dest_pixmap; GdkPixmap *dest_bitmap; GdkVisual *gvisual; GdkColormap *cmap; gint width, height; gint dest_x, dest_y; gint alpha_threshold; g_return_val_if_fail (pm != NULL, FALSE); g_return_val_if_fail (pm->pixmap != None, FALSE); g_return_val_if_fail (pm->mask != None, FALSE); dest_pixmap = gdk_xid_table_lookup (pm->pixmap); if (dest_pixmap) { g_object_ref (G_OBJECT (dest_pixmap)); } else { dest_pixmap = gdk_pixmap_foreign_new (pm->pixmap); } if (!dest_pixmap) { g_warning ("Cannot get pixmap"); return FALSE; } dest_bitmap = gdk_xid_table_lookup (pm->mask); if (dest_bitmap) { g_object_ref (G_OBJECT (dest_bitmap)); } else { dest_bitmap = gdk_pixmap_foreign_new (pm->mask); } if (!dest_bitmap) { g_warning ("Cannot get bitmap"); g_object_unref (dest_pixmap); return FALSE; } gvisual = gdk_screen_get_system_visual (pm->screen_info->gscr); cmap = gdk_x11_colormap_foreign_new (gvisual, pm->screen_info->cmap); if (!cmap) { g_warning ("Cannot create colormap"); g_object_unref (dest_pixmap); g_object_unref (dest_bitmap); return FALSE; } width = MIN (gdk_pixbuf_get_width (pixbuf), pm->width); height = MIN (gdk_pixbuf_get_height (pixbuf), pm->height); dest_x = (pm->width - width) / 2; dest_y = (pm->height - height) / 2; gdk_drawable_set_colormap (GDK_DRAWABLE (dest_pixmap), cmap); gdk_draw_pixbuf (GDK_DRAWABLE (dest_pixmap), NULL, pixbuf, 0, 0, dest_x, dest_y, width, height, GDK_RGB_DITHER_NONE, 0, 0); alpha_threshold = (gdk_pixbuf_get_has_alpha (pixbuf) ? 0xFF : 0); gdk_pixbuf_render_threshold_alpha (pixbuf, dest_bitmap, 0, 0, dest_x, dest_y, width, height, alpha_threshold); g_object_unref (cmap); g_object_unref (dest_pixmap); g_object_unref (dest_bitmap); return TRUE; }