[Xfce4-commits] <xfce4-panel:andrzejr/deskbar-github> pager-wnck: renamed symbols not to confict with the original wnck pager.
Andrzej
noreply at xfce.org
Mon Dec 12 11:40:42 CET 2011
Updating branch refs/heads/andrzejr/deskbar-github
to f518a6c5145fa784fd94a6a66e0d71cb0e07ad58 (commit)
from 1571c9ee25651e529a6ca273cb83cbcb2ebbd065 (commit)
commit f518a6c5145fa784fd94a6a66e0d71cb0e07ad58
Author: Andrzej <ndrwrdck at gmail.com>
Date: Tue Nov 29 02:33:38 2011 +0900
pager-wnck: renamed symbols not to confict with the original wnck pager.
Fixed compilation errors. Disabled accessibility support. Workspace layout interaction does not work (to be changed anyway). Pager now uses pager-wnck.
plugins/pager/Makefile.am | 2 +
plugins/pager/pager-wnck.c | 781 +++++++++++++++++++++++---------------------
plugins/pager/pager-wnck.h | 71 ++--
plugins/pager/pager.c | 13 +-
4 files changed, 456 insertions(+), 411 deletions(-)
diff --git a/plugins/pager/Makefile.am b/plugins/pager/Makefile.am
index ceb1ea7..742935e 100644
--- a/plugins/pager/Makefile.am
+++ b/plugins/pager/Makefile.am
@@ -17,6 +17,8 @@ libpager_la_SOURCES = \
$(libpager_built_sources) \
pager.c \
pager.h \
+ pager-wnck.h \
+ pager-wnck.c \
pager-buttons.h \
pager-buttons.c
diff --git a/plugins/pager/pager-wnck.c b/plugins/pager/pager-wnck.c
index 9474d1a..56c4e52 100644
--- a/plugins/pager/pager-wnck.c
+++ b/plugins/pager/pager-wnck.c
@@ -24,20 +24,19 @@
* Boston, MA 02111-1307, USA.
*/
-#undef WNCK_DISABLE_DEPRECATED
-
#include <config.h>
#include <math.h>
#include <glib/gi18n-lib.h>
-#include "pager.h"
-#include "workspace.h"
-#include "window.h"
-#include "xutils.h"
-#include "pager-accessible-factory.h"
-#include "workspace-accessible-factory.h"
-#include "private.h"
+#include <gdk/gdkx.h>
+#include <libwnck/libwnck.h>
+
+#include "pager-wnck.h"
+
+#define PAGER_WNCK_NO_MANAGER_TOKEN 0 /* from wnck xutils.h */
+#define PAGER_WNCK_ACTIVATE_TIMEOUT 1000 /* from wnck private.h */
+
/**
* SECTION:pager
@@ -45,30 +44,30 @@
* @see_also: #WnckScreen
* @stability: Unstable
*
- * A #WnckPager shows a miniature view of the workspaces, representing managed
+ * A #PagerWnck shows a miniature view of the workspaces, representing managed
* windows by small rectangles, and allows the user to initiate various window
- * manager actions by manipulating these representations. The #WnckPager offers
+ * manager actions by manipulating these representations. The #PagerWnck offers
* ways to move windows between workspaces and to change the current workspace.
*
- * Alternatively, a #WnckPager can be configured to only show the names of the
+ * Alternatively, a #PagerWnck can be configured to only show the names of the
* workspace instead of their contents.
*
- * The #WnckPager is also responsible for setting the layout of the workspaces.
+ * The #PagerWnck is also responsible for setting the layout of the workspaces.
* Since only one application can be responsible for setting the layout on a
- * screen, the #WnckPager automatically tries to obtain the manager selection
+ * screen, the #PagerWnck automatically tries to obtain the manager selection
* for the screen and only sets the layout if it owns the manager selection.
- * See wnck_pager_set_orientation() and wnck_pager_set_n_rows() to change the
+ * See pager_wnck_set_orientation() and pager_wnck_set_n_rows() to change the
* layout.
*/
#define N_SCREEN_CONNECTIONS 11
-struct _WnckPagerPrivate
+struct _PagerWnckPrivate
{
WnckScreen *screen;
int n_rows; /* really columns for vertical orientation */
- WnckPagerDisplayMode display_mode;
+ PagerWnckDisplayMode display_mode;
gboolean show_all_workspaces;
GtkShadowType shadow_type;
@@ -91,8 +90,8 @@ struct _WnckPagerPrivate
guint dnd_time; /* time of last event during dnd (for delayed workspace activation) */
};
-G_DEFINE_TYPE (WnckPager, wnck_pager, GTK_TYPE_WIDGET);
-#define WNCK_PAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_PAGER, WnckPagerPrivate))
+G_DEFINE_TYPE (PagerWnck, pager_wnck, GTK_TYPE_WIDGET);
+#define PAGER_WNCK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFCE_TYPE_PAGER_WNCK, PagerWnckPrivate))
enum
{
@@ -107,56 +106,56 @@ enum
(ycoord) >= (rect).y && \
(ycoord) < ((rect).y + (rect).height))
-static void wnck_pager_init (WnckPager *pager);
-static void wnck_pager_class_init (WnckPagerClass *klass);
-static void wnck_pager_finalize (GObject *object);
+/* static void pager_wnck_init (PagerWnck *pager); */
+/* static void pager_wnck_class_init (PagerWnckClass *klass); */
+static void pager_wnck_finalize (GObject *object);
-static void wnck_pager_realize (GtkWidget *widget);
-static void wnck_pager_unrealize (GtkWidget *widget);
-static void wnck_pager_size_request (GtkWidget *widget,
+static void pager_wnck_realize (GtkWidget *widget);
+static void pager_wnck_unrealize (GtkWidget *widget);
+static void pager_wnck_size_request (GtkWidget *widget,
GtkRequisition *requisition);
-static void wnck_pager_size_allocate (GtkWidget *widget,
+static void pager_wnck_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-static gboolean wnck_pager_expose_event (GtkWidget *widget,
+static gboolean pager_wnck_expose_event (GtkWidget *widget,
GdkEventExpose *event);
-static gboolean wnck_pager_button_press (GtkWidget *widget,
+static gboolean pager_wnck_button_press (GtkWidget *widget,
GdkEventButton *event);
-static gboolean wnck_pager_drag_motion (GtkWidget *widget,
+static gboolean pager_wnck_drag_motion (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time);
-static void wnck_pager_drag_motion_leave (GtkWidget *widget,
+static void pager_wnck_drag_motion_leave (GtkWidget *widget,
GdkDragContext *context,
guint time);
-static gboolean wnck_pager_drag_drop (GtkWidget *widget,
+static gboolean pager_wnck_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time);
-static void wnck_pager_drag_data_received (GtkWidget *widget,
+static void pager_wnck_drag_data_received (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
GtkSelectionData *selection_data,
guint info,
guint time_);
-static void wnck_pager_drag_data_get (GtkWidget *widget,
+static void pager_wnck_drag_data_get (GtkWidget *widget,
GdkDragContext *context,
GtkSelectionData *selection_data,
guint info,
guint time);
-static void wnck_pager_drag_end (GtkWidget *widget,
+static void pager_wnck_drag_end (GtkWidget *widget,
GdkDragContext *context);
-static gboolean wnck_pager_motion (GtkWidget *widget,
+static gboolean pager_wnck_motion (GtkWidget *widget,
GdkEventMotion *event);
-static gboolean wnck_pager_leave_notify (GtkWidget *widget,
+static gboolean pager_wnck_leave_notify (GtkWidget *widget,
GdkEventCrossing *event);
-static gboolean wnck_pager_button_release (GtkWidget *widget,
+static gboolean pager_wnck_button_release (GtkWidget *widget,
GdkEventButton *event);
-static gboolean wnck_pager_focus (GtkWidget *widget,
+static gboolean pager_wnck_focus (GtkWidget *widget,
GtkDirectionType direction);
-static gboolean wnck_pager_query_tooltip (GtkWidget *widget,
+static gboolean pager_wnck_query_tooltip (GtkWidget *widget,
gint x,
gint y,
gboolean keyboard_tip,
@@ -164,48 +163,64 @@ static gboolean wnck_pager_query_tooltip (GtkWidget *widget,
static void workspace_name_changed_callback (WnckWorkspace *workspace,
gpointer data);
-static gboolean wnck_pager_window_state_is_relevant (int state);
-static gint wnck_pager_window_get_workspace (WnckWindow *window,
+static gboolean pager_wnck_window_state_is_relevant (int state);
+static gint pager_wnck_window_get_workspace (WnckWindow *window,
gboolean is_state_relevant);
-static void wnck_pager_queue_draw_workspace (WnckPager *pager,
+static void pager_wnck_queue_draw_workspace (PagerWnck *pager,
gint i);
-static void wnck_pager_queue_draw_window (WnckPager *pager,
+static void pager_wnck_queue_draw_window (PagerWnck *pager,
WnckWindow *window);
-static void wnck_pager_connect_screen (WnckPager *pager);
-static void wnck_pager_connect_window (WnckPager *pager,
+static void pager_wnck_connect_screen (PagerWnck *pager);
+static void pager_wnck_connect_window (PagerWnck *pager,
WnckWindow *window);
-static void wnck_pager_disconnect_screen (WnckPager *pager);
-static void wnck_pager_disconnect_window (WnckPager *pager,
+static void pager_wnck_disconnect_screen (PagerWnck *pager);
+static void pager_wnck_disconnect_window (PagerWnck *pager,
WnckWindow *window);
-static gboolean wnck_pager_set_layout_hint (WnckPager *pager);
+static gboolean pager_wnck_set_layout_hint (PagerWnck *pager);
-static void wnck_pager_clear_drag (WnckPager *pager);
-static void wnck_pager_check_prelight (WnckPager *pager,
+static void pager_wnck_clear_drag (PagerWnck *pager);
+static void pager_wnck_check_prelight (PagerWnck *pager,
gint x,
gint y,
gboolean dnd);
-static GdkPixbuf* wnck_pager_get_background (WnckPager *pager,
+static GdkPixbuf* pager_wnck_get_background (PagerWnck *pager,
int width,
int height);
-static AtkObject* wnck_pager_get_accessible (GtkWidget *widget);
+static AtkObject* pager_wnck_get_accessible (GtkWidget *widget);
+static void
+_pager_wnck_window_set_as_drag_icon (WnckWindow *window,
+ GdkDragContext *context,
+ GtkWidget *drag_source);
+static void _pager_wnck_set_screen (PagerWnck *pager);
+
+static GdkPixbuf* _pager_wnck_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);
+static Display* _pager_wnck_get_default_display (void);
+
static void
-wnck_pager_init (WnckPager *pager)
+pager_wnck_init (PagerWnck *pager)
{
int i;
static const GtkTargetEntry targets[] = {
{ "application/x-wnck-window-id", 0, 0}
};
- pager->priv = WNCK_PAGER_GET_PRIVATE (pager);
+ pager->priv = PAGER_WNCK_GET_PRIVATE (pager);
pager->priv->n_rows = 1;
- pager->priv->display_mode = WNCK_PAGER_DISPLAY_CONTENT;
+ pager->priv->display_mode = PAGER_WNCK_DISPLAY_CONTENT;
pager->priv->show_all_workspaces = TRUE;
pager->priv->shadow_type = GTK_SHADOW_NONE;
@@ -225,7 +240,7 @@ wnck_pager_init (WnckPager *pager)
pager->priv->bg_cache = NULL;
- pager->priv->layout_manager_token = WNCK_NO_MANAGER_TOKEN;
+ pager->priv->layout_manager_token = PAGER_WNCK_NO_MANAGER_TOKEN;
pager->priv->dnd_activate = 0;
pager->priv->dnd_time = 0;
@@ -237,41 +252,41 @@ wnck_pager_init (WnckPager *pager)
}
static void
-wnck_pager_class_init (WnckPagerClass *klass)
+pager_wnck_class_init (PagerWnckClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- g_type_class_add_private (klass, sizeof (WnckPagerPrivate));
-
- object_class->finalize = wnck_pager_finalize;
-
- widget_class->realize = wnck_pager_realize;
- widget_class->unrealize = wnck_pager_unrealize;
- widget_class->size_request = wnck_pager_size_request;
- widget_class->size_allocate = wnck_pager_size_allocate;
- widget_class->expose_event = wnck_pager_expose_event;
- widget_class->button_press_event = wnck_pager_button_press;
- widget_class->button_release_event = wnck_pager_button_release;
- widget_class->motion_notify_event = wnck_pager_motion;
- widget_class->leave_notify_event = wnck_pager_leave_notify;
- widget_class->focus = wnck_pager_focus;
- widget_class->get_accessible = wnck_pager_get_accessible;
- widget_class->drag_leave = wnck_pager_drag_motion_leave;
- widget_class->drag_motion = wnck_pager_drag_motion;
- widget_class->drag_drop = wnck_pager_drag_drop;
- widget_class->drag_data_received = wnck_pager_drag_data_received;
- widget_class->drag_data_get = wnck_pager_drag_data_get;
- widget_class->drag_end = wnck_pager_drag_end;
- widget_class->query_tooltip = wnck_pager_query_tooltip;
+ g_type_class_add_private (klass, sizeof (PagerWnckPrivate));
+
+ object_class->finalize = pager_wnck_finalize;
+
+ widget_class->realize = pager_wnck_realize;
+ widget_class->unrealize = pager_wnck_unrealize;
+ widget_class->size_request = pager_wnck_size_request;
+ widget_class->size_allocate = pager_wnck_size_allocate;
+ widget_class->expose_event = pager_wnck_expose_event;
+ widget_class->button_press_event = pager_wnck_button_press;
+ widget_class->button_release_event = pager_wnck_button_release;
+ widget_class->motion_notify_event = pager_wnck_motion;
+ widget_class->leave_notify_event = pager_wnck_leave_notify;
+ widget_class->focus = pager_wnck_focus;
+ widget_class->get_accessible = pager_wnck_get_accessible;
+ widget_class->drag_leave = pager_wnck_drag_motion_leave;
+ widget_class->drag_motion = pager_wnck_drag_motion;
+ widget_class->drag_drop = pager_wnck_drag_drop;
+ widget_class->drag_data_received = pager_wnck_drag_data_received;
+ widget_class->drag_data_get = pager_wnck_drag_data_get;
+ widget_class->drag_end = pager_wnck_drag_end;
+ widget_class->query_tooltip = pager_wnck_query_tooltip;
}
static void
-wnck_pager_finalize (GObject *object)
+pager_wnck_finalize (GObject *object)
{
- WnckPager *pager;
+ PagerWnck *pager;
- pager = WNCK_PAGER (object);
+ pager = XFCE_PAGER_WNCK (object);
if (pager->priv->bg_cache)
{
@@ -285,11 +300,11 @@ wnck_pager_finalize (GObject *object)
pager->priv->dnd_activate = 0;
}
- G_OBJECT_CLASS (wnck_pager_parent_class)->finalize (object);
+ G_OBJECT_CLASS (pager_wnck_parent_class)->finalize (object);
}
static void
-_wnck_pager_set_screen (WnckPager *pager)
+_pager_wnck_set_screen (PagerWnck *pager)
{
GdkScreen *gdkscreen;
@@ -299,16 +314,16 @@ _wnck_pager_set_screen (WnckPager *pager)
gdkscreen = gtk_widget_get_screen (GTK_WIDGET (pager));
pager->priv->screen = wnck_screen_get (gdk_screen_get_number (gdkscreen));
- if (!wnck_pager_set_layout_hint (pager))
+ if (!pager_wnck_set_layout_hint (pager))
{
_WnckLayoutOrientation orientation;
/* we couldn't set the layout on the screen. This means someone else owns
* it. Let's at least show the correct layout. */
- _wnck_screen_get_workspace_layout (pager->priv->screen,
- &orientation,
- &pager->priv->n_rows,
- NULL, NULL);
+ //_wnck_screen_get_workspace_layout (pager->priv->screen,
+ // &orientation,
+ // &pager->priv->n_rows,
+ // NULL, NULL);
/* test in this order to default to horizontal in case there was in issue
* when fetching the layout */
@@ -320,22 +335,22 @@ _wnck_pager_set_screen (WnckPager *pager)
gtk_widget_queue_resize (GTK_WIDGET (pager));
}
- wnck_pager_connect_screen (pager);
+ pager_wnck_connect_screen (pager);
}
static void
-wnck_pager_realize (GtkWidget *widget)
+pager_wnck_realize (GtkWidget *widget)
{
GdkWindowAttr attributes;
gint attributes_mask;
- WnckPager *pager;
+ PagerWnck *pager;
GtkAllocation allocation;
GdkWindow *window;
GtkStyle *style;
GtkStyle *new_style;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
/* do not call the parent class realize since we're doing things a bit
* differently here */
@@ -374,38 +389,38 @@ wnck_pager_realize (GtkWidget *widget)
gtk_style_set_background (style, window, GTK_STATE_NORMAL);
/* connect to the screen of this pager. In theory, this will already have
- * been done in wnck_pager_size_request() */
+ * been done in pager_wnck_size_request() */
if (pager->priv->screen == NULL)
- _wnck_pager_set_screen (pager);
+ _pager_wnck_set_screen (pager);
g_assert (pager->priv->screen != NULL);
}
static void
-wnck_pager_unrealize (GtkWidget *widget)
+pager_wnck_unrealize (GtkWidget *widget)
{
- WnckPager *pager;
+ PagerWnck *pager;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
- wnck_pager_clear_drag (pager);
+ pager_wnck_clear_drag (pager);
pager->priv->prelight = -1;
pager->priv->prelight_dnd = FALSE;
wnck_screen_release_workspace_layout (pager->priv->screen,
pager->priv->layout_manager_token);
- pager->priv->layout_manager_token = WNCK_NO_MANAGER_TOKEN;
+ pager->priv->layout_manager_token = PAGER_WNCK_NO_MANAGER_TOKEN;
- wnck_pager_disconnect_screen (pager);
+ pager_wnck_disconnect_screen (pager);
pager->priv->screen = NULL;
- GTK_WIDGET_CLASS (wnck_pager_parent_class)->unrealize (widget);
+ GTK_WIDGET_CLASS (pager_wnck_parent_class)->unrealize (widget);
}
static void
-wnck_pager_size_request (GtkWidget *widget,
+pager_wnck_size_request (GtkWidget *widget,
GtkRequisition *requisition)
{
- WnckPager *pager;
+ PagerWnck *pager;
int n_spaces;
int spaces_per_row;
double screen_aspect;
@@ -415,11 +430,11 @@ wnck_pager_size_request (GtkWidget *widget,
int focus_width;
WnckWorkspace *space;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
/* if we're not realized, we don't know about our screen yet */
if (pager->priv->screen == NULL)
- _wnck_pager_set_screen (pager);
+ _pager_wnck_set_screen (pager);
g_assert (pager->priv->screen != NULL);
n_spaces = wnck_screen_get_workspace_count (pager->priv->screen);
@@ -440,7 +455,7 @@ wnck_pager_size_request (GtkWidget *widget,
(double) wnck_screen_get_width (pager->priv->screen);
}
- /* TODO: Handle WNCK_PAGER_DISPLAY_NAME for this case */
+ /* TODO: Handle PAGER_WNCK_DISPLAY_NAME for this case */
if (pager->priv->show_all_workspaces)
{
@@ -483,13 +498,13 @@ wnck_pager_size_request (GtkWidget *widget,
spaces_per_row = 1;
}
- if (pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT)
+ if (pager->priv->display_mode == PAGER_WNCK_DISPLAY_CONTENT)
{
other_dimension_size = screen_aspect * size;
}
else
{
- int n_spaces, i, w;
+ int i, w;
WnckScreen *screen;
PangoLayout *layout;
@@ -535,16 +550,16 @@ wnck_pager_size_request (GtkWidget *widget,
}
static void
-wnck_pager_size_allocate (GtkWidget *widget,
+pager_wnck_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
- WnckPager *pager;
+ PagerWnck *pager;
int workspace_size;
int focus_width;
int width;
int height;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
gtk_widget_style_get (GTK_WIDGET (pager),
"focus-line-width", &focus_width,
@@ -587,12 +602,12 @@ wnck_pager_size_allocate (GtkWidget *widget,
return;
}
- GTK_WIDGET_CLASS (wnck_pager_parent_class)->size_allocate (widget,
+ GTK_WIDGET_CLASS (pager_wnck_parent_class)->size_allocate (widget,
allocation);
}
static void
-get_workspace_rect (WnckPager *pager,
+pager_wnck_get_workspace_rect (PagerWnck *pager,
int space,
GdkRectangle *rect)
{
@@ -712,20 +727,20 @@ get_workspace_rect (WnckPager *pager,
}
static gboolean
-wnck_pager_window_state_is_relevant (int state)
+pager_wnck_window_state_is_relevant (int state)
{
return (state & (WNCK_WINDOW_STATE_HIDDEN | WNCK_WINDOW_STATE_SKIP_PAGER)) ? FALSE : TRUE;
}
static gint
-wnck_pager_window_get_workspace (WnckWindow *window,
+pager_wnck_window_get_workspace (WnckWindow *window,
gboolean is_state_relevant)
{
gint state;
WnckWorkspace *workspace;
state = wnck_window_get_state (window);
- if (is_state_relevant && !wnck_pager_window_state_is_relevant (state))
+ if (is_state_relevant && !pager_wnck_window_state_is_relevant (state))
return -1;
workspace = wnck_window_get_workspace (window);
if (workspace == NULL && wnck_window_is_pinned (window))
@@ -750,7 +765,7 @@ get_windows_for_workspace_in_bottom_to_top (WnckScreen *screen,
for (tmp = windows; tmp != NULL; tmp = tmp->next)
{
WnckWindow *win = WNCK_WINDOW (tmp->data);
- if (wnck_pager_window_get_workspace (win, TRUE) == workspace_num)
+ if (pager_wnck_window_get_workspace (win, TRUE) == workspace_num)
result = g_list_prepend (result, win);
}
@@ -903,7 +918,7 @@ draw_window (GdkDrawable *drawable,
}
static WnckWindow *
-window_at_point (WnckPager *pager,
+window_at_point (PagerWnck *pager,
WnckWorkspace *space,
GdkRectangle *space_rect,
int x,
@@ -942,7 +957,7 @@ window_at_point (WnckPager *pager,
}
static int
-workspace_at_point (WnckPager *pager,
+workspace_at_point (PagerWnck *pager,
int x,
int y,
int *viewport_x,
@@ -986,7 +1001,7 @@ workspace_at_point (WnckPager *pager,
{
GdkRectangle rect;
- get_workspace_rect (pager, i, &rect);
+ pager_wnck_get_workspace_rect (pager, i, &rect);
/* If workspace is on the edge, pretend points on the frame belong to the
* workspace.
@@ -1050,7 +1065,7 @@ workspace_at_point (WnckPager *pager,
static void
-wnck_pager_draw_workspace (WnckPager *pager,
+pager_wnck_draw_workspace (PagerWnck *pager,
int workspace,
GdkRectangle *rect,
GdkPixbuf *bg_pixbuf)
@@ -1211,7 +1226,7 @@ wnck_pager_draw_workspace (WnckPager *pager,
cairo_destroy (cr);
}
- if (pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT)
+ if (pager->priv->display_mode == PAGER_WNCK_DISPLAY_CONTENT)
{
windows = get_windows_for_workspace_in_bottom_to_top (pager->priv->screen,
wnck_screen_get_workspace (pager->priv->screen,
@@ -1283,10 +1298,10 @@ wnck_pager_draw_workspace (WnckPager *pager,
}
static gboolean
-wnck_pager_expose_event (GtkWidget *widget,
+pager_wnck_expose_event (GtkWidget *widget,
GdkEventExpose *event)
{
- WnckPager *pager;
+ PagerWnck *pager;
int i;
int n_spaces;
WnckWorkspace *active_space;
@@ -1297,7 +1312,7 @@ wnck_pager_expose_event (GtkWidget *widget,
GtkStyle *style;
int focus_width;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
n_spaces = wnck_screen_get_workspace_count (pager->priv->screen);
active_space = wnck_screen_get_active_workspace (pager->priv->screen);
@@ -1346,23 +1361,23 @@ wnck_pager_expose_event (GtkWidget *widget,
if (pager->priv->show_all_workspaces ||
(active_space && i == wnck_workspace_get_number (active_space)))
{
- get_workspace_rect (pager, i, &rect);
+ pager_wnck_get_workspace_rect (pager, i, &rect);
/* We only want to do this once, even if w/h change,
* for efficiency. width/height will only change by
* one pixel at most.
*/
if (first &&
- pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT)
+ pager->priv->display_mode == PAGER_WNCK_DISPLAY_CONTENT)
{
- bg_pixbuf = wnck_pager_get_background (pager,
+ bg_pixbuf = pager_wnck_get_background (pager,
rect.width,
rect.height);
first = FALSE;
}
if (gdk_rectangle_intersect (&event->area, &rect, &intersect))
- wnck_pager_draw_workspace (pager, i, &rect, bg_pixbuf);
+ pager_wnck_draw_workspace (pager, i, &rect, bg_pixbuf);
}
++i;
@@ -1372,10 +1387,10 @@ wnck_pager_expose_event (GtkWidget *widget,
}
static gboolean
-wnck_pager_button_press (GtkWidget *widget,
+pager_wnck_button_press (GtkWidget *widget,
GdkEventButton *event)
{
- WnckPager *pager;
+ PagerWnck *pager;
int space_number;
WnckWorkspace *space = NULL;
GdkRectangle workspace_rect;
@@ -1383,13 +1398,13 @@ wnck_pager_button_press (GtkWidget *widget,
if (event->button != 1)
return FALSE;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
space_number = workspace_at_point (pager, event->x, event->y, NULL, NULL);
if (space_number != -1)
{
- get_workspace_rect (pager, space_number, &workspace_rect);
+ pager_wnck_get_workspace_rect (pager, space_number, &workspace_rect);
space = wnck_screen_get_workspace (pager->priv->screen, space_number);
}
@@ -1402,7 +1417,7 @@ wnck_pager_button_press (GtkWidget *widget,
pager->priv->drag_start_y = event->y;
}
- if (space && (pager->priv->display_mode != WNCK_PAGER_DISPLAY_NAME))
+ if (space && (pager->priv->display_mode != PAGER_WNCK_DISPLAY_NAME))
{
pager->priv->drag_window = window_at_point (pager, space,
&workspace_rect,
@@ -1413,9 +1428,9 @@ wnck_pager_button_press (GtkWidget *widget,
}
static gboolean
-wnck_pager_drag_motion_timeout (gpointer data)
+pager_wnck_drag_motion_timeout (gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
WnckWorkspace *active_workspace, *dnd_workspace;
pager->priv->dnd_activate = 0;
@@ -1431,7 +1446,7 @@ wnck_pager_drag_motion_timeout (gpointer data)
}
static void
-wnck_pager_queue_draw_workspace (WnckPager *pager,
+pager_wnck_queue_draw_workspace (PagerWnck *pager,
gint i)
{
GdkRectangle rect;
@@ -1439,27 +1454,27 @@ wnck_pager_queue_draw_workspace (WnckPager *pager,
if (i < 0)
return;
- get_workspace_rect (pager, i, &rect);
+ pager_wnck_get_workspace_rect (pager, i, &rect);
gtk_widget_queue_draw_area (GTK_WIDGET (pager),
rect.x, rect.y,
rect.width, rect.height);
}
static void
-wnck_pager_queue_draw_window (WnckPager *pager,
+pager_wnck_queue_draw_window (PagerWnck *pager,
WnckWindow *window)
{
gint workspace;
- workspace = wnck_pager_window_get_workspace (window, TRUE);
+ workspace = pager_wnck_window_get_workspace (window, TRUE);
if (workspace == -1)
return;
- wnck_pager_queue_draw_workspace (pager, workspace);
+ pager_wnck_queue_draw_workspace (pager, workspace);
}
static void
-wnck_pager_check_prelight (WnckPager *pager,
+pager_wnck_check_prelight (PagerWnck *pager,
gint x,
gint y,
gboolean prelight_dnd)
@@ -1473,45 +1488,45 @@ wnck_pager_check_prelight (WnckPager *pager,
if (id != pager->priv->prelight)
{
- wnck_pager_queue_draw_workspace (pager, pager->priv->prelight);
- wnck_pager_queue_draw_workspace (pager, id);
+ pager_wnck_queue_draw_workspace (pager, pager->priv->prelight);
+ pager_wnck_queue_draw_workspace (pager, id);
pager->priv->prelight = id;
pager->priv->prelight_dnd = prelight_dnd;
}
else if (prelight_dnd != pager->priv->prelight_dnd)
{
- wnck_pager_queue_draw_workspace (pager, pager->priv->prelight);
+ pager_wnck_queue_draw_workspace (pager, pager->priv->prelight);
pager->priv->prelight_dnd = prelight_dnd;
}
}
static gboolean
-wnck_pager_drag_motion (GtkWidget *widget,
+pager_wnck_drag_motion (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
- guint time)
+ guint dnd_time)
{
- WnckPager *pager;
+ PagerWnck *pager;
gint previous_workspace;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
previous_workspace = pager->priv->prelight;
- wnck_pager_check_prelight (pager, x, y, TRUE);
+ pager_wnck_check_prelight (pager, x, y, TRUE);
if (gtk_drag_dest_find_target (widget, context, NULL))
{
#if GTK_CHECK_VERSION(2,21,0)
gdk_drag_status (context,
- gdk_drag_context_get_suggested_action (context), time);
+ gdk_drag_context_get_suggested_action (context), dnd_time);
#else
- gdk_drag_status (context, context->suggested_action, time);
+ gdk_drag_status (context, context->suggested_action, dnd_time);
#endif
}
else
{
- gdk_drag_status (context, 0, time);
+ gdk_drag_status (context, 0, dnd_time);
if (pager->priv->prelight != previous_workspace &&
pager->priv->dnd_activate != 0)
@@ -1524,10 +1539,10 @@ wnck_pager_drag_motion (GtkWidget *widget,
if (pager->priv->dnd_activate == 0 && pager->priv->prelight > -1)
{
- pager->priv->dnd_activate = g_timeout_add (WNCK_ACTIVATE_TIMEOUT,
- wnck_pager_drag_motion_timeout,
+ pager->priv->dnd_activate = g_timeout_add (PAGER_WNCK_ACTIVATE_TIMEOUT,
+ pager_wnck_drag_motion_timeout,
pager);
- pager->priv->dnd_time = time;
+ pager->priv->dnd_time = dnd_time;
}
}
@@ -1535,38 +1550,38 @@ wnck_pager_drag_motion (GtkWidget *widget,
}
static gboolean
-wnck_pager_drag_drop (GtkWidget *widget,
+pager_wnck_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
- guint time)
+ guint dnd_time)
{
- WnckPager *pager = WNCK_PAGER (widget);
+ PagerWnck *pager = XFCE_PAGER_WNCK (widget);
GdkAtom target;
target = gtk_drag_dest_find_target (widget, context, NULL);
if (target != GDK_NONE)
- gtk_drag_get_data (widget, context, target, time);
+ gtk_drag_get_data (widget, context, target, dnd_time);
else
- gtk_drag_finish (context, FALSE, FALSE, time);
+ gtk_drag_finish (context, FALSE, FALSE, dnd_time);
- wnck_pager_clear_drag (pager);
- wnck_pager_check_prelight (pager, x, y, FALSE);
+ pager_wnck_clear_drag (pager);
+ pager_wnck_check_prelight (pager, x, y, FALSE);
return TRUE;
}
static void
-wnck_pager_drag_data_received (GtkWidget *widget,
+pager_wnck_drag_data_received (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
GtkSelectionData *selection_data,
guint info,
- guint time)
+ guint dnd_time)
{
- WnckPager *pager = WNCK_PAGER (widget);
+ PagerWnck *pager = XFCE_PAGER_WNCK (widget);
WnckWorkspace *space;
GList *tmp;
gint i;
@@ -1575,7 +1590,7 @@ wnck_pager_drag_data_received (GtkWidget *widget,
if ((gtk_selection_data_get_length (selection_data) != sizeof (gulong)) ||
(gtk_selection_data_get_format (selection_data) != 8))
{
- gtk_drag_finish (context, FALSE, FALSE, time);
+ gtk_drag_finish (context, FALSE, FALSE, dnd_time);
return;
}
@@ -1583,7 +1598,7 @@ wnck_pager_drag_data_received (GtkWidget *widget,
space = wnck_screen_get_workspace (pager->priv->screen, i);
if (!space)
{
- gtk_drag_finish (context, FALSE, FALSE, time);
+ gtk_drag_finish (context, FALSE, FALSE, dnd_time);
return;
}
@@ -1596,23 +1611,23 @@ wnck_pager_drag_data_received (GtkWidget *widget,
WnckWindow *win = tmp->data;
wnck_window_move_to_workspace (win, space);
if (space == wnck_screen_get_active_workspace (pager->priv->screen))
- wnck_window_activate (win, time);
- gtk_drag_finish (context, TRUE, FALSE, time);
+ wnck_window_activate (win, dnd_time);
+ gtk_drag_finish (context, TRUE, FALSE, dnd_time);
return;
}
}
- gtk_drag_finish (context, FALSE, FALSE, time);
+ gtk_drag_finish (context, FALSE, FALSE, dnd_time);
}
static void
-wnck_pager_drag_data_get (GtkWidget *widget,
+pager_wnck_drag_data_get (GtkWidget *widget,
GdkDragContext *context,
GtkSelectionData *selection_data,
guint info,
- guint time)
+ guint dnd_time)
{
- WnckPager *pager = WNCK_PAGER (widget);
+ PagerWnck *pager = XFCE_PAGER_WNCK (widget);
gulong xid;
if (pager->priv->drag_window == NULL)
@@ -1625,20 +1640,20 @@ wnck_pager_drag_data_get (GtkWidget *widget,
}
static void
-wnck_pager_drag_end (GtkWidget *widget,
+pager_wnck_drag_end (GtkWidget *widget,
GdkDragContext *context)
{
- WnckPager *pager = WNCK_PAGER (widget);
+ PagerWnck *pager = XFCE_PAGER_WNCK (widget);
- wnck_pager_clear_drag (pager);
+ pager_wnck_clear_drag (pager);
}
static void
-wnck_pager_drag_motion_leave (GtkWidget *widget,
+pager_wnck_drag_motion_leave (GtkWidget *widget,
GdkDragContext *context,
- guint time)
+ guint dnd_time)
{
- WnckPager *pager = WNCK_PAGER (widget);
+ PagerWnck *pager = XFCE_PAGER_WNCK (widget);
if (pager->priv->dnd_activate != 0)
{
@@ -1646,7 +1661,7 @@ wnck_pager_drag_motion_leave (GtkWidget *widget,
pager->priv->dnd_activate = 0;
}
pager->priv->dnd_time = 0;
- wnck_pager_check_prelight (pager, -1, -1, FALSE);
+ pager_wnck_check_prelight (pager, -1, -1, FALSE);
}
static void
@@ -1769,8 +1784,8 @@ wnck_drag_clean_up (WnckWindow *window,
*
* Sets the given @window as the drag icon for @context.
**/
-void
-_wnck_window_set_as_drag_icon (WnckWindow *window,
+static void
+_pager_wnck_window_set_as_drag_icon (WnckWindow *window,
GdkDragContext *context,
GtkWidget *drag_source)
{
@@ -1792,14 +1807,14 @@ _wnck_window_set_as_drag_icon (WnckWindow *window,
}
static gboolean
-wnck_pager_motion (GtkWidget *widget,
+pager_wnck_motion (GtkWidget *widget,
GdkEventMotion *event)
{
- WnckPager *pager;
+ PagerWnck *pager;
GdkWindow *window;
int x, y;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
window = gtk_widget_get_window (widget);
gdk_window_get_pointer (window, &x, &y, NULL);
@@ -1818,35 +1833,35 @@ wnck_pager_motion (GtkWidget *widget,
1, (GdkEvent *)event);
pager->priv->dragging = TRUE;
pager->priv->prelight_dnd = TRUE;
- _wnck_window_set_as_drag_icon (pager->priv->drag_window,
+ _pager_wnck_window_set_as_drag_icon (pager->priv->drag_window,
context,
GTK_WIDGET (pager));
}
- wnck_pager_check_prelight (pager, x, y, pager->priv->prelight_dnd);
+ pager_wnck_check_prelight (pager, x, y, pager->priv->prelight_dnd);
return TRUE;
}
static gboolean
-wnck_pager_leave_notify (GtkWidget *widget,
+pager_wnck_leave_notify (GtkWidget *widget,
GdkEventCrossing *event)
{
- WnckPager *pager;
+ PagerWnck *pager;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
- wnck_pager_check_prelight (pager, -1, -1, FALSE);
+ pager_wnck_check_prelight (pager, -1, -1, FALSE);
return FALSE;
}
static gboolean
-wnck_pager_button_release (GtkWidget *widget,
+pager_wnck_button_release (GtkWidget *widget,
GdkEventButton *event)
{
WnckWorkspace *space;
- WnckPager *pager;
+ PagerWnck *pager;
int i;
int j;
int viewport_x;
@@ -1855,7 +1870,7 @@ wnck_pager_button_release (GtkWidget *widget,
if (event->button != 1)
return FALSE;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
if (!pager->priv->dragging)
{
@@ -1895,59 +1910,43 @@ wnck_pager_button_release (GtkWidget *widget,
wnck_screen_move_viewport (pager->priv->screen, viewport_x, viewport_y);
}
- wnck_pager_clear_drag (pager);
+ pager_wnck_clear_drag (pager);
}
return FALSE;
}
static gboolean
-wnck_pager_focus (GtkWidget *widget,
+pager_wnck_focus (GtkWidget *widget,
GtkDirectionType direction)
{
- WnckPager *pager;
+ /* PagerWnck *pager; */
- pager = WNCK_PAGER (widget);
+ /* pager = XFCE_PAGER_WNCK (widget); */
- return GTK_WIDGET_CLASS (wnck_pager_parent_class)->focus (widget, direction);
-}
-
-/**
- * wnck_pager_set_screen:
- * @pager: a #WnckPager.
- * @screen: a #WnckScreen.
- *
- * Does nothing.
- *
- * Since: 2.2
- * Deprecated:2.20:
- */
-void
-wnck_pager_set_screen (WnckPager *pager,
- WnckScreen *screen)
-{
+ return GTK_WIDGET_CLASS (pager_wnck_parent_class)->focus (widget, direction);
}
static gboolean
-wnck_pager_query_tooltip (GtkWidget *widget,
+pager_wnck_query_tooltip (GtkWidget *widget,
gint x,
gint y,
gboolean keyboard_tip,
GtkTooltip *tooltip)
{
int i;
- WnckPager *pager;
+ PagerWnck *pager;
WnckScreen *screen;
WnckWorkspace *space;
char *name;
- pager = WNCK_PAGER (widget);
+ pager = XFCE_PAGER_WNCK (widget);
screen = pager->priv->screen;
i = workspace_at_point (pager, x, y, NULL, NULL);
space = wnck_screen_get_workspace (screen, i);
if (!space)
- return GTK_WIDGET_CLASS (wnck_pager_parent_class)->query_tooltip (widget,
+ return GTK_WIDGET_CLASS (pager_wnck_parent_class)->query_tooltip (widget,
x, y,
keyboard_tip,
tooltip);
@@ -1957,7 +1956,7 @@ wnck_pager_query_tooltip (GtkWidget *widget,
WnckWindow *window;
GdkRectangle workspace_rect;
- get_workspace_rect (pager, i, &workspace_rect);
+ pager_wnck_get_workspace_rect (pager, i, &workspace_rect);
window = window_at_point (pager, space, &workspace_rect, x, y);
@@ -1982,34 +1981,34 @@ wnck_pager_query_tooltip (GtkWidget *widget,
}
/**
- * wnck_pager_new:
+ * pager_wnck_new:
* @screen: deprecated argument, can be %NULL.
*
- * Creates a new #WnckPager. The #WnckPager will show the #WnckWorkspace of the
+ * Creates a new #PagerWnck. The #PagerWnck will show the #WnckWorkspace of the
* #WnckScreen it is on.
*
- * Return value: a newly created #WnckPager.
+ * Return value: a newly created #PagerWnck.
*/
/* TODO: when we break API again, remove the screen from here */
GtkWidget*
-wnck_pager_new (WnckScreen *screen)
+pager_wnck_new (WnckScreen *screen)
{
- WnckPager *pager;
+ PagerWnck *pager;
- pager = g_object_new (WNCK_TYPE_PAGER, NULL);
+ pager = g_object_new (XFCE_TYPE_PAGER_WNCK, NULL);
return GTK_WIDGET (pager);
}
static gboolean
-wnck_pager_set_layout_hint (WnckPager *pager)
+pager_wnck_set_layout_hint (PagerWnck *pager)
{
int layout_rows;
int layout_cols;
/* if we're not realized, we don't know about our screen yet */
if (pager->priv->screen == NULL)
- _wnck_pager_set_screen (pager);
+ _pager_wnck_set_screen (pager);
/* can still happen if the pager was not added to a widget hierarchy */
if (pager->priv->screen == NULL)
return FALSE;
@@ -2039,12 +2038,12 @@ wnck_pager_set_layout_hint (WnckPager *pager)
layout_rows,
layout_cols);
- return (pager->priv->layout_manager_token != WNCK_NO_MANAGER_TOKEN);
+ return (pager->priv->layout_manager_token != PAGER_WNCK_NO_MANAGER_TOKEN);
}
/**
- * wnck_pager_set_orientation:
- * @pager: a #WnckPager.
+ * pager_wnck_set_orientation:
+ * @pager: a #PagerWnck.
* @orientation: orientation to use for the layout of #WnckWorkspace on the
* #WnckScreen @pager is watching.
*
@@ -2060,7 +2059,7 @@ wnck_pager_set_layout_hint (WnckPager *pager)
* laid out in columns, with the first #WnckWorkspace in the top left corner.
*
* For example, if the layout contains one row, but the orientation of the
- * layout is vertical, the #WnckPager will display a column of #WnckWorkspace.
+ * layout is vertical, the #PagerWnck will display a column of #WnckWorkspace.
*
* If @pager has not been added to a widget hierarchy, the call will fail
* because @pager can't know the screen on which to modify the orientation.
@@ -2069,13 +2068,13 @@ wnck_pager_set_layout_hint (WnckPager *pager)
* changed or did not need to be changed, %FALSE otherwise.
*/
gboolean
-wnck_pager_set_orientation (WnckPager *pager,
+pager_wnck_set_orientation (PagerWnck *pager,
GtkOrientation orientation)
{
GtkOrientation old_orientation;
gboolean old_orientation_is_valid;
- g_return_val_if_fail (WNCK_IS_PAGER (pager), FALSE);
+ g_return_val_if_fail (XFCE_IS_PAGER_WNCK (pager), FALSE);
if (pager->priv->orientation == orientation)
return TRUE;
@@ -2085,7 +2084,7 @@ wnck_pager_set_orientation (WnckPager *pager,
pager->priv->orientation = orientation;
- if (wnck_pager_set_layout_hint (pager))
+ if (pager_wnck_set_layout_hint (pager))
{
gtk_widget_queue_resize (GTK_WIDGET (pager));
return TRUE;
@@ -2098,31 +2097,14 @@ wnck_pager_set_orientation (WnckPager *pager,
}
}
-/**
- * wnck_pager_set_n_rows:
- * @pager: a #WnckPager.
- * @n_rows: the number of rows to use for the layout of #WnckWorkspace on the
- * #WnckScreen @pager is watching.
- *
- * Tries to change the number of rows in the layout of #WnckWorkspace on the
- * #WnckScreen @pager is watching. Since no more than one application should
- * set this property of a #WnckScreen at a time, setting the layout is not
- * guaranteed to work.
- *
- * If @pager has not been added to a widget hierarchy, the call will fail
- * because @pager can't know the screen on which to modify the layout.
- *
- * Return value: %TRUE if the layout of #WnckWorkspace has been successfully
- * changed or did not need to be changed, %FALSE otherwise.
- */
gboolean
-wnck_pager_set_n_rows (WnckPager *pager,
+pager_wnck_set_n_rows (PagerWnck *pager,
int n_rows)
{
int old_n_rows;
gboolean old_n_rows_is_valid;
- g_return_val_if_fail (WNCK_IS_PAGER (pager), FALSE);
+ g_return_val_if_fail (XFCE_IS_PAGER_WNCK (pager), FALSE);
g_return_val_if_fail (n_rows > 0, FALSE);
if (pager->priv->n_rows == n_rows)
@@ -2133,7 +2115,7 @@ wnck_pager_set_n_rows (WnckPager *pager,
pager->priv->n_rows = n_rows;
- if (wnck_pager_set_layout_hint (pager))
+ if (pager_wnck_set_layout_hint (pager))
{
gtk_widget_queue_resize (GTK_WIDGET (pager));
return TRUE;
@@ -2147,40 +2129,40 @@ wnck_pager_set_n_rows (WnckPager *pager,
}
/**
- * wnck_pager_set_display_mode:
- * @pager: a #WnckPager.
+ * pager_wnck_set_display_mode:
+ * @pager: a #PagerWnck.
* @mode: a display mode.
*
* Sets the display mode for @pager to @mode.
*/
void
-wnck_pager_set_display_mode (WnckPager *pager,
- WnckPagerDisplayMode mode)
+pager_wnck_set_display_mode (PagerWnck *pager,
+ PagerWnckDisplayMode mode)
{
- g_return_if_fail (WNCK_IS_PAGER (pager));
+ g_return_if_fail (XFCE_IS_PAGER_WNCK (pager));
if (pager->priv->display_mode == mode)
return;
- g_object_set (pager, "has-tooltip", mode != WNCK_PAGER_DISPLAY_NAME, NULL);
+ g_object_set (pager, "has-tooltip", mode != PAGER_WNCK_DISPLAY_NAME, NULL);
pager->priv->display_mode = mode;
gtk_widget_queue_resize (GTK_WIDGET (pager));
}
/**
- * wnck_pager_set_show_all:
- * @pager: a #WnckPager.
+ * pager_wnck_set_show_all:
+ * @pager: a #PagerWnck.
* @show_all_workspaces: whether to display all #WnckWorkspace in @pager.
*
* Sets @pager to display all #WnckWorkspace or not, according to
* @show_all_workspaces.
*/
void
-wnck_pager_set_show_all (WnckPager *pager,
+pager_wnck_set_show_all (PagerWnck *pager,
gboolean show_all_workspaces)
{
- g_return_if_fail (WNCK_IS_PAGER (pager));
+ g_return_if_fail (XFCE_IS_PAGER_WNCK (pager));
show_all_workspaces = (show_all_workspaces != 0);
@@ -2192,21 +2174,21 @@ wnck_pager_set_show_all (WnckPager *pager,
}
/**
- * wnck_pager_set_shadow_type:
- * @pager: a #WnckPager.
+ * pager_wnck_set_shadow_type:
+ * @pager: a #PagerWnck.
* @shadow_type: a shadow type.
*
* Sets the shadow type for @pager to @shadow_type. The main use of this
- * function is proper integration of #WnckPager in panels with non-system
+ * function is proper integration of #PagerWnck in panels with non-system
* backgrounds.
*
* Since: 2.2
*/
void
-wnck_pager_set_shadow_type (WnckPager * pager,
+pager_wnck_set_shadow_type (PagerWnck * pager,
GtkShadowType shadow_type)
{
- g_return_if_fail (WNCK_IS_PAGER (pager));
+ g_return_if_fail (XFCE_IS_PAGER_WNCK (pager));
if (pager->priv->shadow_type == shadow_type)
return;
@@ -2220,7 +2202,7 @@ active_window_changed_callback (WnckScreen *screen,
WnckWindow *previous_window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
gtk_widget_queue_draw (GTK_WIDGET (pager));
}
@@ -2229,7 +2211,7 @@ active_workspace_changed_callback (WnckScreen *screen,
WnckWorkspace *previous_workspace,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
gtk_widget_queue_draw (GTK_WIDGET (pager));
}
@@ -2237,7 +2219,7 @@ static void
window_stacking_changed_callback (WnckScreen *screen,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
gtk_widget_queue_draw (GTK_WIDGET (pager));
}
@@ -2246,10 +2228,10 @@ window_opened_callback (WnckScreen *screen,
WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
- wnck_pager_connect_window (pager, window);
- wnck_pager_queue_draw_window (pager, window);
+ pager_wnck_connect_window (pager, window);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
@@ -2257,12 +2239,12 @@ window_closed_callback (WnckScreen *screen,
WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
if (pager->priv->drag_window == window)
- wnck_pager_clear_drag (pager);
+ pager_wnck_clear_drag (pager);
- wnck_pager_queue_draw_window (pager, window);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
@@ -2270,7 +2252,7 @@ workspace_created_callback (WnckScreen *screen,
WnckWorkspace *space,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
g_signal_connect (space, "name_changed",
G_CALLBACK (workspace_name_changed_callback), pager);
gtk_widget_queue_resize (GTK_WIDGET (pager));
@@ -2281,7 +2263,7 @@ workspace_destroyed_callback (WnckScreen *screen,
WnckWorkspace *space,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
g_signal_handlers_disconnect_by_func (space, G_CALLBACK (workspace_name_changed_callback), pager);
gtk_widget_queue_resize (GTK_WIDGET (pager));
}
@@ -2291,7 +2273,7 @@ application_opened_callback (WnckScreen *screen,
WnckApplication *app,
gpointer data)
{
- /* WnckPager *pager = WNCK_PAGER (data); */
+ /* PagerWnck *pager = XFCE_PAGER_WNCK (data); */
}
static void
@@ -2299,15 +2281,15 @@ application_closed_callback (WnckScreen *screen,
WnckApplication *app,
gpointer data)
{
- /* WnckPager *pager = WNCK_PAGER (data); */
+ /* PagerWnck *pager = XFCE_PAGER_WNCK (data); */
}
static void
window_name_changed_callback (WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
- wnck_pager_queue_draw_window (pager, window);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
@@ -2316,24 +2298,24 @@ window_state_changed_callback (WnckWindow *window,
WnckWindowState new,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
/* if the changed state changes the visibility in the pager, we need to
- * redraw the whole workspace. wnck_pager_queue_draw_window() might not be
+ * redraw the whole workspace. pager_wnck_queue_draw_window() might not be
* enough */
- if (!wnck_pager_window_state_is_relevant (changed))
- wnck_pager_queue_draw_workspace (pager,
- wnck_pager_window_get_workspace (window,
+ if (!pager_wnck_window_state_is_relevant (changed))
+ pager_wnck_queue_draw_workspace (pager,
+ pager_wnck_window_get_workspace (window,
FALSE));
else
- wnck_pager_queue_draw_window (pager, window);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
window_workspace_changed_callback (WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
gtk_widget_queue_draw (GTK_WIDGET (pager));
}
@@ -2341,24 +2323,24 @@ static void
window_icon_changed_callback (WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
- wnck_pager_queue_draw_window (pager, window);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
window_geometry_changed_callback (WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
- wnck_pager_queue_draw_window (pager, window);
+ pager_wnck_queue_draw_window (pager, window);
}
static void
background_changed_callback (WnckWindow *window,
gpointer data)
{
- WnckPager *pager = WNCK_PAGER (data);
+ PagerWnck *pager = XFCE_PAGER_WNCK (data);
if (pager->priv->bg_cache)
{
@@ -2384,7 +2366,7 @@ viewports_changed_callback (WnckWorkspace *space,
}
static void
-wnck_pager_connect_screen (WnckPager *pager)
+pager_wnck_connect_screen (PagerWnck *pager)
{
int i;
guint *c;
@@ -2397,7 +2379,7 @@ wnck_pager_connect_screen (WnckPager *pager)
for (tmp = wnck_screen_get_windows (screen); tmp; tmp = tmp->next)
{
- wnck_pager_connect_window (pager, WNCK_WINDOW (tmp->data));
+ pager_wnck_connect_window (pager, WNCK_WINDOW (tmp->data));
}
i = 0;
@@ -2471,7 +2453,7 @@ wnck_pager_connect_screen (WnckPager *pager)
}
static void
-wnck_pager_connect_window (WnckPager *pager,
+pager_wnck_connect_window (PagerWnck *pager,
WnckWindow *window)
{
g_signal_connect (G_OBJECT (window), "name_changed",
@@ -2492,7 +2474,7 @@ wnck_pager_connect_window (WnckPager *pager,
}
static void
-wnck_pager_disconnect_screen (WnckPager *pager)
+pager_wnck_disconnect_screen (PagerWnck *pager)
{
int i;
GList *tmp;
@@ -2521,12 +2503,12 @@ wnck_pager_disconnect_screen (WnckPager *pager)
for (tmp = wnck_screen_get_windows (pager->priv->screen); tmp; tmp = tmp->next)
{
- wnck_pager_disconnect_window (pager, WNCK_WINDOW (tmp->data));
+ pager_wnck_disconnect_window (pager, WNCK_WINDOW (tmp->data));
}
}
static void
-wnck_pager_disconnect_window (WnckPager *pager,
+pager_wnck_disconnect_window (PagerWnck *pager,
WnckWindow *window)
{
g_signal_handlers_disconnect_by_func (G_OBJECT (window),
@@ -2547,10 +2529,10 @@ wnck_pager_disconnect_window (WnckPager *pager,
}
static void
-wnck_pager_clear_drag (WnckPager *pager)
+pager_wnck_clear_drag (PagerWnck *pager)
{
if (pager->priv->dragging)
- wnck_pager_queue_draw_window (pager, pager->priv->drag_window);
+ pager_wnck_queue_draw_window (pager, pager->priv->drag_window);
pager->priv->dragging = FALSE;
pager->priv->drag_window = NULL;
@@ -2558,8 +2540,114 @@ wnck_pager_clear_drag (WnckPager *pager)
pager->priv->drag_start_y = -1;
}
+/* Copied from libwnck xutils.c */
+static GdkColormap*
+_pager_wnck_get_cmap (GdkPixmap *pixmap)
+{
+ GdkColormap *cmap;
+
+ cmap = gdk_drawable_get_colormap (pixmap);
+ if (cmap)
+ g_object_ref (G_OBJECT (cmap));
+
+ if (cmap == NULL)
+ {
+ if (gdk_drawable_get_depth (pixmap) == 1)
+ {
+ /* try null cmap */
+ cmap = NULL;
+ }
+ else
+ {
+ /* Try system cmap */
+ GdkScreen *screen = gdk_drawable_get_screen (GDK_DRAWABLE (pixmap));
+ cmap = gdk_screen_get_system_colormap (screen);
+ g_object_ref (G_OBJECT (cmap));
+ }
+ }
+
+ /* Be sure we aren't going to blow up due to visual mismatch */
+ if (cmap &&
+#if GTK_CHECK_VERSION(2,21,0)
+ (gdk_visual_get_depth (gdk_colormap_get_visual (cmap)) !=
+ gdk_drawable_get_depth (pixmap))
+#else
+ (gdk_colormap_get_visual (cmap)->depth !=
+ gdk_drawable_get_depth (pixmap))
+#endif
+ )
+ {
+ g_object_unref (G_OBJECT (cmap));
+ cmap = NULL;
+ }
+
+ return cmap;
+}
+
+/* Copied from libwnck xutils.c */
+static GdkPixbuf*
+_pager_wnck_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 = _pager_wnck_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;
+}
+
+/* Copied from libwnck utils.c */
+static Display *
+_pager_wnck_get_default_display (void)
+{
+ /* FIXME: when we fix libwnck to not use the GDK default display, we will
+ * need to fix wnckprop accordingly. */
+ return GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+}
+
static GdkPixbuf*
-wnck_pager_get_background (WnckPager *pager,
+pager_wnck_get_background (PagerWnck *pager,
int width,
int height)
{
@@ -2595,12 +2683,16 @@ wnck_pager_get_background (WnckPager *pager,
if (p != None)
{
- _wnck_error_trap_push ();
- pix = _wnck_gdk_pixbuf_get_from_pixmap (NULL,
+ /* _wnck_error_trap_push (); */
+ gdk_error_trap_push ();
+ pix = _pager_wnck_gdk_pixbuf_get_from_pixmap (NULL,
p,
0, 0, 0, 0,
-1, -1);
- _wnck_error_trap_pop ();
+ /* _wnck_error_trap_pop (); */
+ XSync (_pager_wnck_get_default_display(), False);
+ gdk_error_trap_pop ();
+
}
if (pix)
@@ -2620,7 +2712,7 @@ wnck_pager_get_background (WnckPager *pager,
*This will return aobj_pager whose parent is wnck's atk object -Gail Container
*/
static AtkObject *
-wnck_pager_get_accessible (GtkWidget *widget)
+pager_wnck_get_accessible (GtkWidget *widget)
{
static gboolean first_time = TRUE;
@@ -2634,9 +2726,9 @@ wnck_pager_get_accessible (GtkWidget *widget)
/*
* Figure out whether accessibility is enabled by looking at the
* type of the accessible object which would be created for
- * the parent type WnckPager.
+ * the parent type PagerWnck.
*/
- derived_type = g_type_parent (WNCK_TYPE_PAGER);
+ derived_type = g_type_parent (XFCE_TYPE_PAGER_WNCK);
registry = atk_get_default_registry ();
factory = atk_registry_get_factory (registry,
@@ -2649,62 +2741,15 @@ wnck_pager_get_accessible (GtkWidget *widget)
* Specify what factory to use to create accessible
* objects
*/
- atk_registry_set_factory_type (registry,
- WNCK_TYPE_PAGER,
- WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY);
+ /* atk_registry_set_factory_type (registry, */
+ /* WNCK_TYPE_PAGER, */
+ /* WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY); */
- atk_registry_set_factory_type (registry,
- WNCK_TYPE_WORKSPACE,
- WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY);
+ /* atk_registry_set_factory_type (registry, */
+ /* WNCK_TYPE_WORKSPACE, */
+ /* WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY); */
}
first_time = FALSE;
}
- return GTK_WIDGET_CLASS (wnck_pager_parent_class)->get_accessible (widget);
-}
-
-int
-_wnck_pager_get_n_workspaces (WnckPager *pager)
-{
- return wnck_screen_get_workspace_count (pager->priv->screen);
-}
-
-const char*
-_wnck_pager_get_workspace_name (WnckPager *pager,
- int i)
-{
- WnckWorkspace *space;
-
- space = wnck_screen_get_workspace (pager->priv->screen, i);
- if (space)
- return wnck_workspace_get_name (space);
- else
- return NULL;
-}
-
-WnckWorkspace*
-_wnck_pager_get_active_workspace (WnckPager *pager)
-{
- return wnck_screen_get_active_workspace (pager->priv->screen);
-}
-
-WnckWorkspace*
-_wnck_pager_get_workspace (WnckPager *pager,
- int i)
-{
- return wnck_screen_get_workspace (pager->priv->screen, i);
-}
-
-void
-_wnck_pager_activate_workspace (WnckWorkspace *wspace,
- guint32 timestamp)
-{
- wnck_workspace_activate (wspace, timestamp);
-}
-
-void
-_wnck_pager_get_workspace_rect (WnckPager *pager,
- int i,
- GdkRectangle *rect)
-{
- get_workspace_rect (pager, i, rect);
+ return GTK_WIDGET_CLASS (pager_wnck_parent_class)->get_accessible (widget);
}
diff --git a/plugins/pager/pager-wnck.h b/plugins/pager/pager-wnck.h
index 9104755..fab670e 100644
--- a/plugins/pager/pager-wnck.h
+++ b/plugins/pager/pager-wnck.h
@@ -21,39 +21,39 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef WNCK_PAGER_H
-#define WNCK_PAGER_H
+#ifndef __PAGER_WNCK_H__
+#define __PAGER_WNCK_H__
#include <gtk/gtk.h>
#include <libwnck/screen.h>
G_BEGIN_DECLS
-#define WNCK_TYPE_PAGER (wnck_pager_get_type ())
-#define WNCK_PAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_PAGER, WnckPager))
-#define WNCK_PAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_PAGER, WnckPagerClass))
-#define WNCK_IS_PAGER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_PAGER))
-#define WNCK_IS_PAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_PAGER))
-#define WNCK_PAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_PAGER, WnckPagerClass))
+#define XFCE_TYPE_PAGER_WNCK (pager_wnck_get_type ())
+#define XFCE_PAGER_WNCK(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), XFCE_TYPE_PAGER_WNCK, PagerWnck))
+#define XFCE_PAGER_WNCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFCE_TYPE_PAGER_WNCK, PagerWnckClass))
+#define XFCE_IS_PAGER_WNCK(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), XFCE_TYPE_PAGER_WNCK))
+#define XFCE_IS_PAGER_WNCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_TYPE_PAGER_WNCK))
+#define XFCE_PAGER_WNCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_TYPE_PAGER_WNCK, PagerWnckClass))
-typedef struct _WnckPager WnckPager;
-typedef struct _WnckPagerClass WnckPagerClass;
-typedef struct _WnckPagerPrivate WnckPagerPrivate;
+typedef struct _PagerWnck PagerWnck;
+typedef struct _PagerWnckClass PagerWnckClass;
+typedef struct _PagerWnckPrivate PagerWnckPrivate;
/**
- * WnckPager:
+ * PagerWnck:
*
- * The #WnckPager struct contains only private fields and should not be
+ * The #PagerWnck struct contains only private fields and should not be
* directly accessed.
*/
-struct _WnckPager
+struct _PagerWnck
{
GtkContainer parent_instance;
- WnckPagerPrivate *priv;
+ PagerWnckPrivate *priv;
};
-struct _WnckPagerClass
+struct _PagerWnckClass
{
GtkContainerClass parent_class;
@@ -65,42 +65,39 @@ struct _WnckPagerClass
};
/**
- * WnckPagerDisplayMode:
- * @WNCK_PAGER_DISPLAY_NAME: the #WnckPager will only display the names of the
+ * PagerWnckDisplayMode:
+ * @PAGER_WNCK_DISPLAY_NAME: the #PagerWnck will only display the names of the
* workspaces.
- * @WNCK_PAGER_DISPLAY_CONTENT: the #WnckPager will display a representation
+ * @PAGER_WNCK_DISPLAY_CONTENT: the #PagerWnck will display a representation
* for each window in the workspaces.
*
- * Mode defining what a #WnckPager will display.
+ * Mode defining what a #PagerWnck will display.
*/
typedef enum {
- WNCK_PAGER_DISPLAY_NAME,
- WNCK_PAGER_DISPLAY_CONTENT
-} WnckPagerDisplayMode;
+ PAGER_WNCK_DISPLAY_NAME,
+ PAGER_WNCK_DISPLAY_CONTENT
+} PagerWnckDisplayMode;
-GType wnck_pager_get_type (void) G_GNUC_CONST;
+GType pager_wnck_get_type (void) G_GNUC_CONST;
-GtkWidget* wnck_pager_new (WnckScreen *screen);
+void pager_wnck_register_type (XfcePanelTypeModule *type_module);
-gboolean wnck_pager_set_orientation (WnckPager *pager,
+GtkWidget* pager_wnck_new (WnckScreen *screen);
+
+gboolean pager_wnck_set_orientation (PagerWnck *pager,
GtkOrientation orientation);
-gboolean wnck_pager_set_n_rows (WnckPager *pager,
+gboolean pager_wnck_set_n_rows (PagerWnck *pager,
int n_rows);
-void wnck_pager_set_display_mode (WnckPager *pager,
- WnckPagerDisplayMode mode);
-void wnck_pager_set_show_all (WnckPager *pager,
+void pager_wnck_set_display_mode (PagerWnck *pager,
+ PagerWnckDisplayMode mode);
+void pager_wnck_set_show_all (PagerWnck *pager,
gboolean show_all_workspaces);
-void wnck_pager_set_shadow_type (WnckPager *pager,
+void pager_wnck_set_shadow_type (PagerWnck *pager,
GtkShadowType shadow_type);
-#ifndef WNCK_DISABLE_DEPRECATED
-void wnck_pager_set_screen (WnckPager *pager,
- WnckScreen *screen);
-#endif /* WNCK_DISABLE_DEPRECATED */
-
G_END_DECLS
-#endif /* WNCK_PAGER_H */
+#endif /* !__PAGER_WNCK_H__ */
diff --git a/plugins/pager/pager.c b/plugins/pager/pager.c
index 5c1989f..463a620 100644
--- a/plugins/pager/pager.c
+++ b/plugins/pager/pager.c
@@ -32,6 +32,7 @@
#include <exo/exo.h>
#include "pager.h"
+#include "pager-wnck.h"
#include "pager-buttons.h"
#include "pager-dialog_ui.h"
@@ -226,7 +227,7 @@ pager_plugin_set_property (GObject *object,
{
if (plugin->miniature_view)
{
- if (!wnck_pager_set_n_rows (WNCK_PAGER (plugin->pager), plugin->rows))
+ if (!pager_wnck_set_n_rows (XFCE_PAGER_WNCK (plugin->pager), plugin->rows))
g_message ("Failed to set the number of pager rows. You probably "
"have more than 1 pager in your panel setup.");
}
@@ -304,11 +305,11 @@ pager_plugin_screen_layout_changed (PagerPlugin *plugin)
if (plugin->miniature_view)
{
- plugin->pager = wnck_pager_new (plugin->wnck_screen);
- wnck_pager_set_display_mode (WNCK_PAGER (plugin->pager), WNCK_PAGER_DISPLAY_CONTENT);
- if (!wnck_pager_set_n_rows (WNCK_PAGER (plugin->pager), plugin->rows))
+ plugin->pager = pager_wnck_new (plugin->wnck_screen);
+ pager_wnck_set_display_mode (PAGER_WNCK (plugin->pager), PAGER_WNCK_DISPLAY_CONTENT);
+ if (!pager_wnck_set_n_rows (PAGER_WNCK (plugin->pager), plugin->rows))
g_message ("Setting the pager rows returned false. Maybe the setting is not applied.");
- wnck_pager_set_orientation (WNCK_PAGER (plugin->pager), orientation);
+ pager_wnck_set_orientation (PAGER_WNCK (plugin->pager), orientation);
}
else
{
@@ -475,7 +476,7 @@ pager_plugin_orientation_changed (XfcePanelPlugin *panel_plugin,
orientation = GTK_ORIENTATION_HORIZONTAL;
if (plugin->miniature_view)
- wnck_pager_set_orientation (WNCK_PAGER (plugin->pager), orientation);
+ pager_wnck_set_orientation (XFCE_PAGER_WNCK (plugin->pager), orientation);
else
pager_buttons_set_orientation (XFCE_PAGER_BUTTONS (plugin->pager), orientation);
}
More information about the Xfce4-commits
mailing list