[notification-daemon] nd-queue: remove multi-screen code
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [notification-daemon] nd-queue: remove multi-screen code
- Date: Sat, 29 Nov 2014 12:35:28 +0000 (UTC)
commit 66fd9bdc8cda488434b29b5c1ea8439c63228546
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Nov 29 14:20:36 2014 +0200
nd-queue: remove multi-screen code
Since GTK+ 3.10.0 there is only one screen per display.
src/nd-queue.c | 125 +++++++++++++++++++++++---------------------------------
1 files changed, 51 insertions(+), 74 deletions(-)
---
diff --git a/src/nd-queue.c b/src/nd-queue.c
index e9ea119..150a336 100644
--- a/src/nd-queue.c
+++ b/src/nd-queue.c
@@ -57,8 +57,7 @@ struct NdQueuePrivate
GtkWidget *dock;
GtkWidget *dock_scrolled_window;
- NotifyScreen **screens;
- int n_screens;
+ NotifyScreen *screen;
guint update_id;
};
@@ -88,10 +87,8 @@ create_stack_for_monitor (NdQueue *queue,
int monitor_num)
{
NotifyScreen *nscreen;
- int screen_num;
- screen_num = gdk_screen_get_number (screen);
- nscreen = queue->priv->screens[screen_num];
+ nscreen = queue->priv->screen;
nscreen->stacks[monitor_num] = nd_stack_new (screen,
monitor_num);
@@ -102,12 +99,10 @@ on_screen_monitors_changed (GdkScreen *screen,
NdQueue *queue)
{
NotifyScreen *nscreen;
- int screen_num;
int n_monitors;
int i;
- screen_num = gdk_screen_get_number (screen);
- nscreen = queue->priv->screens[screen_num];
+ nscreen = queue->priv->screen;
n_monitors = gdk_screen_get_n_monitors (screen);
@@ -161,11 +156,9 @@ create_stacks_for_screen (NdQueue *queue,
GdkScreen *screen)
{
NotifyScreen *nscreen;
- int screen_num;
int i;
- screen_num = gdk_screen_get_number (screen);
- nscreen = queue->priv->screens[screen_num];
+ nscreen = queue->priv->screen;
nscreen->n_stacks = gdk_screen_get_n_monitors (screen);
@@ -200,37 +193,30 @@ screen_xevent_filter (GdkXEvent *xevent,
}
static void
-create_screens (NdQueue *queue)
+create_screen (NdQueue *queue)
{
- GdkDisplay *display;
- int i;
+ GdkDisplay *display;
+ GdkScreen *screen;
+ GdkWindow *gdkwindow;
- g_assert (queue->priv->screens == NULL);
+ g_assert (queue->priv->screen == NULL);
display = gdk_display_get_default ();
- queue->priv->n_screens = gdk_display_get_n_screens (display);
-
- queue->priv->screens = g_new0 (NotifyScreen *, queue->priv->n_screens);
+ screen = gdk_display_get_default_screen (display);
- for (i = 0; i < queue->priv->n_screens; i++) {
- GdkScreen *screen;
- GdkWindow *gdkwindow;
-
- screen = gdk_display_get_screen (display, i);
- g_signal_connect (screen,
- "monitors-changed",
- G_CALLBACK (on_screen_monitors_changed),
- queue);
+ g_signal_connect (screen,
+ "monitors-changed",
+ G_CALLBACK (on_screen_monitors_changed),
+ queue);
- queue->priv->screens[i] = g_new0 (NotifyScreen, 1);
+ queue->priv->screen = g_new0 (NotifyScreen, 1);
+ queue->priv->screen->workarea_atom = XInternAtom (GDK_DISPLAY_XDISPLAY (display), "_NET_WORKAREA",
True);
- queue->priv->screens[i]->workarea_atom = XInternAtom (GDK_DISPLAY_XDISPLAY
(gdk_display_get_default ()), "_NET_WORKAREA", True);
- gdkwindow = gdk_screen_get_root_window (screen);
- gdk_window_add_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter,
queue->priv->screens[i]);
- gdk_window_set_events (gdkwindow, gdk_window_get_events (gdkwindow) |
GDK_PROPERTY_CHANGE_MASK);
+ gdkwindow = gdk_screen_get_root_window (screen);
+ gdk_window_add_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter, queue->priv->screen);
+ gdk_window_set_events (gdkwindow, gdk_window_get_events (gdkwindow) | GDK_PROPERTY_CHANGE_MASK);
- create_stacks_for_screen (queue, gdk_display_get_screen (display, i));
- }
+ create_stacks_for_screen (queue, screen);
}
static void
@@ -346,17 +332,14 @@ on_dock_key_release (GtkWidget *widget,
static void
clear_stacks (NdQueue *queue)
{
- int i;
- int j;
+ NotifyScreen *nscreen;
+ gint i;
- for (i = 0; i < queue->priv->n_screens; i++) {
- NotifyScreen *nscreen;
- nscreen = queue->priv->screens[i];
- for (j = 0; j < nscreen->n_stacks; j++) {
- NdStack *stack;
- stack = nscreen->stacks[j];
- nd_stack_remove_all (stack);
- }
+ nscreen = queue->priv->screen;
+ for (i = 0; i < nscreen->n_stacks; i++) {
+ NdStack *stack;
+ stack = nscreen->stacks[i];
+ nd_stack_remove_all (stack);
}
}
@@ -484,39 +467,35 @@ nd_queue_init (NdQueue *queue)
queue->priv->status_icon = NULL;
create_dock (queue);
- create_screens (queue);
+ create_screen (queue);
}
static void
-destroy_screens (NdQueue *queue)
+destroy_screen (NdQueue *queue)
{
- GdkDisplay *display;
- int i;
- int j;
+ GdkDisplay *display;
+ GdkScreen *screen;
+ GdkWindow *gdkwindow;
+ gint i;
display = gdk_display_get_default ();
+ screen = gdk_display_get_default_screen (display);
- for (i = 0; i < queue->priv->n_screens; i++) {
- GdkScreen *screen;
- GdkWindow *gdkwindow;
-
- screen = gdk_display_get_screen (display, i);
- g_signal_handlers_disconnect_by_func (screen,
- G_CALLBACK (on_screen_monitors_changed),
- queue);
+ g_signal_handlers_disconnect_by_func (screen,
+ G_CALLBACK (on_screen_monitors_changed),
+ queue);
- gdkwindow = gdk_screen_get_root_window (screen);
- gdk_window_remove_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter,
queue->priv->screens[i]);
- for (j = 0; j < queue->priv->screens[i]->n_stacks; j++) {
- g_object_unref (queue->priv->screens[i]->stacks[j]);
- queue->priv->screens[i]->stacks[j] = NULL;
- }
-
- g_free (queue->priv->screens[i]->stacks);
+ gdkwindow = gdk_screen_get_root_window (screen);
+ gdk_window_remove_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter, queue->priv->screen);
+ for (i = 0; i < queue->priv->screen->n_stacks; i++) {
+ g_clear_object (&queue->priv->screen->stacks[i]);
}
- g_free (queue->priv->screens);
- queue->priv->screens = NULL;
+ g_free (queue->priv->screen->stacks);
+ queue->priv->screen->stacks = NULL;
+
+ g_free (queue->priv->screen);
+ queue->priv->screen = NULL;
}
@@ -539,7 +518,7 @@ nd_queue_finalize (GObject *object)
g_hash_table_destroy (queue->priv->notifications);
g_queue_free (queue->priv->queue);
- destroy_screens (queue);
+ destroy_screen (queue);
if (queue->priv->numerable_icon != NULL) {
g_object_unref (queue->priv->numerable_icon);
@@ -574,7 +553,6 @@ get_stack_with_pointer (NdQueue *queue)
{
GdkScreen *screen;
int x, y;
- int screen_num;
int monitor_num;
gdk_display_get_pointer (gdk_display_get_default (),
@@ -582,16 +560,15 @@ get_stack_with_pointer (NdQueue *queue)
&x,
&y,
NULL);
- screen_num = gdk_screen_get_number (screen);
monitor_num = gdk_screen_get_monitor_at_point (screen, x, y);
- if (monitor_num >= queue->priv->screens[screen_num]->n_stacks) {
+ if (monitor_num >= queue->priv->screen->n_stacks) {
/* screw it - dump it on the last one we'll get
a monitors-changed signal soon enough*/
- monitor_num = queue->priv->screens[screen_num]->n_stacks - 1;
+ monitor_num = queue->priv->screen->n_stacks - 1;
}
- return queue->priv->screens[screen_num]->stacks[monitor_num];
+ return queue->priv->screen->stacks[monitor_num];
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]