Exemplo n.º 1
0
static void
egg_tray_icon_unrealize (GtkWidget *widget)
{
  EggTrayIcon *icon = EGG_TRAY_ICON (widget);
  GdkWindow *root_window;

  if (icon->manager_window != None)
    {
      GdkWindow *gdkwin;

#if GTK_CHECK_VERSION(2,1,0)
      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
                                              icon->manager_window);
#else
      gdkwin = gdk_window_lookup (icon->manager_window);
#endif

      gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
    }

#if GTK_CHECK_VERSION(2,1,0)
  root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
#else
  root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
#endif

  gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);

  if (GTK_WIDGET_CLASS (parent_class)->unrealize)
    (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
}
Exemplo n.º 2
0
void gdk_superwin_destroy(GtkObject *object)
{
  
  GdkSuperWin *superwin = NULL;

  g_return_if_fail(object != NULL);
  g_return_if_fail(GTK_IS_OBJECT(object));
  g_return_if_fail(GTK_OBJECT_CONSTRUCTED(object));
  g_return_if_fail(GDK_IS_SUPERWIN(object));

  superwin = GDK_SUPERWIN(object);

  gdk_window_remove_filter(superwin->shell_window,
                           gdk_superwin_shell_filter,
                           superwin);
  gdk_window_remove_filter(superwin->bin_window,
                           gdk_superwin_bin_filter,
                           superwin);
  gdk_window_destroy(superwin->bin_window);
  gdk_window_destroy(superwin->shell_window);

  if (superwin->translate_queue) {
    GSList *tmp_list = superwin->translate_queue;
    while (tmp_list) {
      g_free(tmp_list->data);
      tmp_list = tmp_list->next;
    }
    g_slist_free(superwin->translate_queue);
  }
}
Exemplo n.º 3
0
static void
egg_tray_icon_unrealize (GtkWidget *widget)
{
#ifdef GDK_WINDOWING_X11
  EggTrayIcon *icon = EGG_TRAY_ICON (widget);
  GdkWindow *root_window;

  if (icon->manager_window != None)
    {
      GdkWindow *gdkwin;

      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
                                              icon->manager_window);

      gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
    }

  root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));

  gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);

  if (GTK_WIDGET_CLASS (parent_class)->unrealize)
    (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
#endif
}
Exemplo n.º 4
0
static void
egg_tray_manager_unmanage (EggTrayManager *manager)
{
#ifdef GDK_WINDOWING_X11
  Display *display;
  guint32 timestamp;
  GtkWidget *invisible;

  if (manager->invisible == NULL)
    return;

  invisible = manager->invisible;
  g_assert (GTK_IS_INVISIBLE (invisible));
  g_assert (GTK_WIDGET_REALIZED (invisible));
  g_assert (GDK_IS_WINDOW (invisible->window));
  
  display = GDK_WINDOW_XDISPLAY (invisible->window);
  
  if (XGetSelectionOwner (display, manager->selection_atom) ==
      GDK_WINDOW_XWINDOW (invisible->window))
    {
      timestamp = gdk_x11_get_server_time (invisible->window);      
      XSetSelectionOwner (display, manager->selection_atom, None, timestamp);
    }

  gdk_window_remove_filter (invisible->window, egg_tray_manager_window_filter, manager);  

  manager->invisible = NULL; /* prior to destroy for reentrancy paranoia */
  gtk_widget_destroy (invisible);
  g_object_unref (G_OBJECT (invisible));
#endif
}
Exemplo n.º 5
0
static void egg_tray_icon_update_manager_window(EggTrayIcon * icon)
{
	Display *xdisplay;

	xdisplay = GDK_DISPLAY_XDISPLAY(gtk_widget_get_display(GTK_WIDGET(icon)));

	if (icon->manager_window != None)
	{
		GdkWindow *gdkwin;

		gdkwin = gdk_window_lookup_for_display(gtk_widget_get_display(GTK_WIDGET(icon)), icon->manager_window);
		gdk_window_remove_filter(gdkwin, egg_tray_icon_manager_filter, icon);
	}

	XGrabServer(xdisplay);

	icon->manager_window = XGetSelectionOwner(xdisplay, icon->selection_atom);

	if (icon->manager_window != None)
		XSelectInput(xdisplay, icon->manager_window, StructureNotifyMask);

	XUngrabServer(xdisplay);
	XFlush(xdisplay);

	if (icon->manager_window != None)
	{
		GdkWindow *gdkwin;

		gdkwin = gdk_window_lookup_for_display(gtk_widget_get_display(GTK_WIDGET(icon)), icon->manager_window);
		gdk_window_add_filter(gdkwin, egg_tray_icon_manager_filter, icon);
		/* Send a request that we'd like to dock */
		egg_tray_icon_send_dock_request(icon);
	}
}
Exemplo n.º 6
0
static void
remove_popup (GtkWidget *popup)
{
	GdkWindow        *root;
#if GTK_CHECK_VERSION (3, 0, 0)
	GdkDisplay       *display;
	GdkDevice        *pointer;
	GdkDevice        *keyboard;
	GdkDeviceManager *device_manager;
#endif

	root = gdk_screen_get_root_window (
			gtk_window_get_screen (GTK_WINDOW (popup)));
	gdk_window_remove_filter (root, (GdkFilterFunc) popup_filter, popup);

	gtk_widget_destroy (popup);

#if GTK_CHECK_VERSION (3, 0, 0)
	display = gdk_window_get_display (root);
	device_manager = gdk_display_get_device_manager (display);
	pointer = gdk_device_manager_get_client_pointer (device_manager);
	keyboard = gdk_device_get_associated_device (pointer);

	gdk_device_ungrab (pointer, GDK_CURRENT_TIME);
	gdk_device_ungrab (keyboard, GDK_CURRENT_TIME);
#else
	gdk_pointer_ungrab (GDK_CURRENT_TIME);
	gdk_keyboard_ungrab (GDK_CURRENT_TIME);
#endif
}
Exemplo n.º 7
0
/* title_on_screen_changed */
static void _title_on_screen_changed(GtkWidget * widget, GdkScreen * previous,
		gpointer data)
{
	Title * title = data;
	GdkEventMask events;

#ifdef DEBUG
	fprintf(stderr, "DEBUG: %s()\n", __func__);
#endif
	if(title->root != NULL)
		gdk_window_remove_filter(title->root, _title_on_filter, title);
	title->screen = gtk_widget_get_screen(widget);
	title->display = gdk_screen_get_display(title->screen);
	title->root = gdk_screen_get_root_window(title->screen);
	events = gdk_window_get_events(title->root);
	gdk_window_set_events(title->root, events
			| GDK_PROPERTY_CHANGE_MASK);
	gdk_window_add_filter(title->root, _title_on_filter, title);
	title->atom_active = gdk_x11_get_xatom_by_name_for_display(
			title->display, "_NET_ACTIVE_WINDOW");
	title->atom_name = gdk_x11_get_xatom_by_name_for_display(
			title->display, "_NET_WM_NAME");
	title->atom_utf8_string = gdk_x11_get_xatom_by_name_for_display(
			title->display, "UTF8_STRING");
	title->atom_visible_name = gdk_x11_get_xatom_by_name_for_display(
			title->display, "_NET_WM_VISIBLE_NAME");
	_title_do(title);
}
Exemplo n.º 8
0
static void
assistive_registry_start (void)
{
        GdkWindow *root;
        guint      tid;

        root = gdk_get_default_root_window ();

        if ( ! AT_SPI_IOR) {
                AT_SPI_IOR = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "AT_SPI_IOR", False);
        }

        gdk_window_set_events (root,  GDK_PROPERTY_CHANGE_MASK);

        if ( ! assistive_registry_launch ()) {
                g_warning ("The accessibility registry could not be started.");
                return;
        }

        gdk_window_add_filter (root, filter_watch, NULL);
        tid = g_timeout_add_seconds (5, filter_timeout, NULL);

        gtk_main ();

        gdk_window_remove_filter (root, filter_watch, NULL);
        g_source_remove (tid);
}
Exemplo n.º 9
0
Arquivo: pager.c Projeto: g7/fbpanel
static void
pager_destructor(plugin_instance *p)
{
    pager_priv *pg = (pager_priv *)p;

    ENTER;
    g_signal_handlers_disconnect_by_func(G_OBJECT (fbev),
            do_net_current_desktop, pg);
    g_signal_handlers_disconnect_by_func(G_OBJECT (fbev),
            do_net_active_window, pg);
    g_signal_handlers_disconnect_by_func(G_OBJECT (fbev),
            pager_rebuild_all, pg);
    g_signal_handlers_disconnect_by_func(G_OBJECT (fbev),
            do_net_client_list_stacking, pg);
    gdk_window_remove_filter(NULL, (GdkFilterFunc)pager_event_filter, pg);
    while (pg->desknum--) {
        desk_free(pg, pg->desknum);
    }
    g_hash_table_foreach_remove(pg->htable, (GHRFunc) task_remove_all,
            (gpointer)pg);
    g_hash_table_destroy(pg->htable);
    gtk_widget_destroy(pg->box);
    if (pg->wallpaper) {
        g_signal_handlers_disconnect_by_func(G_OBJECT (pg->fbbg),
              pager_bg_changed, pg);
        DBG("put fbbg %p\n", pg->fbbg);
        g_object_unref(pg->fbbg);
    }
    if (pg->wins)
        XFree(pg->wins);
    RET();
}
Exemplo n.º 10
0
static void tray_widget_unrealize(GtkWidget *widget)
{
	struct _tray_widget_icon *widget_icon = TRAY_WIDGET_ICON(widget);

	if (widget_icon->manager_window != None)
	{
		GdkWindow *gdk_window = gdk_window_lookup_for_display(gtk_widget_get_display(widget), widget_icon->manager_window);
		gdk_window_remove_filter(gdk_window, tray_widget_filter, widget_icon);
	}

	GdkWindow *gdk_window = gdk_screen_get_root_window(gtk_widget_get_screen(widget));
	gdk_window_remove_filter(gdk_window, tray_widget_filter, widget_icon);

	if (GTK_WIDGET_CLASS(parent_class)->unrealize)
		(* GTK_WIDGET_CLASS(parent_class)->unrealize)(widget);
}
Exemplo n.º 11
0
static void
remove_workarea_filter (NemoDesktopManager *manager)
{
    gdk_window_remove_filter (manager->root_window,
                              gdk_filter_func,
                              manager);
    manager->root_window = NULL;
}
Exemplo n.º 12
0
void
_gdk_x11_xsettings_finish (GdkX11Screen *x11_screen)
{
  gdk_window_remove_filter (gdk_screen_get_root_window (GDK_SCREEN (x11_screen)), gdk_xsettings_root_window_filter, x11_screen);
  if (x11_screen->xsettings_manager_window)
    {
      gdk_window_remove_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen);
      g_object_unref (x11_screen->xsettings_manager_window);
      x11_screen->xsettings_manager_window = NULL;
    }
  
  if (x11_screen->xsettings)
    {
      g_hash_table_unref (x11_screen->xsettings);
      x11_screen->xsettings = NULL;
    }
}
static void
hd_home_plugin_item_unrealize (GtkWidget *widget)
{
  gdk_window_remove_filter (gtk_widget_get_window (widget),
                            hd_home_plugin_item_event_filter, widget);

  GTK_WIDGET_CLASS (hd_home_plugin_item_parent_class)->unrealize (widget);
}
void cd_xkbd_stop ()
{
	g_return_if_fail (myData.pEngine != NULL);

	xkl_engine_stop_listen (myData.pEngine, XKLL_TRACK_KEYBOARD_STATE);

	gdk_window_remove_filter (NULL, (GdkFilterFunc) _filter_xevent, NULL);
	/// gdk_window_remove_filter (gdk_get_default_root_window (), (GdkFilterFunc) _filter_xevent, NULL);
}
static void
hildon_remote_texture_unrealize               (GtkWidget *widget)
{
    gdk_window_remove_filter (widget->window,
			      hildon_remote_texture_event_filter,
			      widget);

    GTK_WIDGET_CLASS (hildon_remote_texture_parent_class)->unrealize (widget);
}
Exemplo n.º 16
0
/*
 * Called when the root window pixmap actor is destroyed.
 */
static void
root_pixmap_destroy (GObject *sender, gpointer data)
{
  ShellGlobal *global = SHELL_GLOBAL (data);

  gdk_window_remove_filter (gdk_get_default_root_window (),
                            root_window_filter, global);
  global->root_pixmap = NULL;
}
static void
clutter_backend_gdk_finalize (GObject *gobject)
{
  ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (gobject);

  gdk_window_remove_filter (NULL, cogl_gdk_filter, NULL);
  g_object_unref (backend_gdk->display);

  G_OBJECT_CLASS (clutter_backend_gdk_parent_class)->finalize (gobject);
}
Exemplo n.º 18
0
void panel_stop(panel *p)
{
    ENTER;

    tray_destructor(p);
    XSelectInput (gdk_helper_display(), GDK_ROOT_WINDOW(), NoEventMask);
    gdk_window_remove_filter(gdk_get_default_root_window (), (GdkFilterFunc)panel_wm_events, p);
    gtk_widget_destroy(p->topgwin);
    RET();
}
Exemplo n.º 19
0
/* title_destroy */
static void _title_destroy(Title * title)
{
	if(title->source != 0)
		g_signal_handler_disconnect(title->widget, title->source);
	title->source = 0;
	if(title->root != NULL)
		gdk_window_remove_filter(title->root, _title_on_filter, title);
	gtk_widget_destroy(title->widget);
	free(title);
}
Exemplo n.º 20
0
Arquivo: trayicon.c Projeto: aufau/xqf
static void egg_tray_icon_unrealize (GtkWidget *widget) {
	EggTrayIcon *icon = EGG_TRAY_ICON (widget);
	GdkWindow *root_window=NULL;

	if (icon->manager_window != None) {
		gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);

		if (GTK_WIDGET_CLASS (parent_class)->unrealize)
			(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
	}
}
Exemplo n.º 21
0
void destroy_wrapper(GdkWindow* wrapper)
{
    GdkWindow* icon = get_icon_window(wrapper);
    gdk_window_remove_filter(icon, (GdkFilterFunc)monitor_icon_event, wrapper);
    if (icon != wrapper) {
        gdk_window_destroy(wrapper); //this will decrements wrapper's reference count, don't repeat call g_object_unref
        g_object_unref(icon);
    } else {
        g_object_unref(icon);
    }
}
Exemplo n.º 22
0
void
mate_rr_screen_destroy (MateRRScreen *screen)
{
	g_return_if_fail (screen != NULL);

	gdk_window_remove_filter (screen->gdk_root, screen_on_event, screen);

	screen_info_free (screen->info);
	screen->info = NULL;

	g_free (screen);
}
Exemplo n.º 23
0
/* removal is by data due to proxy function */
void
meta_ui_remove_event_func (Display       *xdisplay,
                           MetaEventFunc  func,
                           gpointer       data)
{
  g_return_if_fail (ef != NULL);

  gdk_window_remove_filter (NULL, filter_func, ef);

  g_free (ef);
  ef = NULL;
}
Exemplo n.º 24
0
static void tray_widget_manager_window_destroyed(struct _tray_widget_icon *widget_icon)
{
	g_return_if_fail(widget_icon->manager_window != None);

	GdkWindow *gdk_window = gdk_window_lookup_for_display(gtk_widget_get_display(GTK_WIDGET(widget_icon)), widget_icon->manager_window);

	gdk_window_remove_filter(gdk_window, tray_widget_filter, widget_icon);

	widget_icon->manager_window = None;

	tray_widget_update_manager_window(widget_icon, TRUE);
}
Exemplo n.º 25
0
static void
remove_popup (GtkWidget *popup)
{
	GdkWindow *root;

	root = gdk_screen_get_root_window (
			gtk_window_get_screen (GTK_WINDOW (popup)));
	gdk_window_remove_filter (root, (GdkFilterFunc) popup_filter, popup);

	gtk_widget_destroy (popup);
	gdk_pointer_ungrab (GDK_CURRENT_TIME);
	gdk_keyboard_ungrab (GDK_CURRENT_TIME);
}
Exemplo n.º 26
0
void release_filter()
{
    GdkDisplay *display;
    int screen;

    display = gdk_display_get_default();

    for (screen = 0; screen<gdk_display_get_n_screens(display); screen++)
    {
        gdk_window_remove_filter(gdk_screen_get_root_window(gdk_display_get_screen(display, screen)),
                    gdk_filter,
                    NULL);
    }
}
Exemplo n.º 27
0
static void matenu_settings_real_attach_to_window (MatenuSettings* self, GdkWindow* window) {
	GdkEventMask events;
	g_return_if_fail (self != NULL);
	if (self->priv->_window != NULL) {
		gdk_window_remove_filter (window, _matenu_settings_event_filter_gdk_filter_func, self);
	}
	if (window == NULL) {
		return;
	}
	matenu_settings_set_window (self, window);
	gdk_window_add_filter (self->priv->_window, _matenu_settings_event_filter_gdk_filter_func, self);
	events = gdk_window_get_events (self->priv->_window);
	gdk_window_set_events (self->priv->_window, events | GDK_PROPERTY_CHANGE_MASK);
	matenu_settings_pull (self);
}
Exemplo n.º 28
0
Arquivo: icons.c Projeto: g7/fbpanel
static void
icons_destructor(plugin_instance *p)
{
    icons_priv *ics = (icons_priv *) p;
    
    ENTER;
    g_signal_handlers_disconnect_by_func(G_OBJECT (fbev), do_net_client_list,
        ics);
    g_signal_handlers_disconnect_by_func(G_OBJECT(gtk_icon_theme_get_default()),
        theme_changed, ics);
    gdk_window_remove_filter(NULL, (GdkFilterFunc)ics_event_filter, ics );
    drop_config(ics);
    g_hash_table_destroy(ics->task_list);
    RET();
}
Exemplo n.º 29
0
static void
byzanz_recorder_finalize (GObject *object)
{
  ByzanzRecorder *recorder = BYZANZ_RECORDER (object);

  if (recorder->next_image_source)
    g_source_remove (recorder->next_image_source);

  gdk_window_remove_filter (recorder->window, 
      byzanz_recorder_filter_events, recorder);
  g_object_unref (recorder->window);
  g_sequence_free (recorder->layers);

  G_OBJECT_CLASS (byzanz_recorder_parent_class)->finalize (object);
}
Exemplo n.º 30
0
static void
xfce_keyboard_layout_helper_finalize (GObject *object)
{
#ifdef HAVE_LIBXKLAVIER
    XfceKeyboardLayoutHelper *helper = XFCE_KEYBOARD_LAYOUT_HELPER (object);

    xkl_engine_stop_listen (helper->engine, XKLL_TRACK_KEYBOARD_STATE);
    gdk_window_remove_filter (NULL, (GdkFilterFunc) handle_xevent, helper);
    g_object_unref (helper->config);
    g_object_unref (helper->engine);
    g_free (helper->system_keyboard_model);
#endif /* HAVE_LIBXKLAVIER */

    G_OBJECT_CLASS (xfce_keyboard_layout_helper_parent_class)->finalize (object);
}