mirror of
https://github.com/brl/mutter.git
synced 2025-08-09 18:04:44 +00:00
Emit signals when workspaces are added, removed or switched
The patch adds GLib marshalling code to Mutter, since it's required for the "workspace-switched" signal. The definition of MetaMotionDirection enum is moved to common.h since it's now used in workspace.c. A little cleaning is done in workspace.c:meta_workspace_activate_with_focus(), where compositor-specific code is merged with the rest of the function (required to emit signal), removing #ifdefs.
This commit is contained in:
@@ -46,6 +46,9 @@ AC_HEADER_STDC
|
|||||||
AC_LIBTOOL_WIN32_DLL
|
AC_LIBTOOL_WIN32_DLL
|
||||||
AM_PROG_LIBTOOL
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
|
||||||
|
AM_PATH_GLIB_2_0()
|
||||||
|
|
||||||
#### Integer sizes
|
#### Integer sizes
|
||||||
|
|
||||||
AC_CHECK_SIZEOF(char)
|
AC_CHECK_SIZEOF(char)
|
||||||
|
@@ -4,6 +4,12 @@ SUBDIRS=wm-tester tools compositor/plugins
|
|||||||
|
|
||||||
INCLUDES=@MUTTER_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
|
INCLUDES=@MUTTER_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
|
||||||
|
|
||||||
|
mutter_built_sources = \
|
||||||
|
mutter-marshal.h \
|
||||||
|
mutter-marshal.c \
|
||||||
|
mutter-enum-types.h \
|
||||||
|
mutter-enum-types.c
|
||||||
|
|
||||||
mutter_SOURCES= \
|
mutter_SOURCES= \
|
||||||
core/async-getprop.c \
|
core/async-getprop.c \
|
||||||
core/async-getprop.h \
|
core/async-getprop.h \
|
||||||
@@ -108,7 +114,8 @@ mutter_SOURCES= \
|
|||||||
ui/themewidget.c \
|
ui/themewidget.c \
|
||||||
ui/themewidget.h \
|
ui/themewidget.h \
|
||||||
ui/ui.c \
|
ui/ui.c \
|
||||||
include/all-keybindings.h
|
include/all-keybindings.h \
|
||||||
|
$(mutter_built_sources)
|
||||||
|
|
||||||
# by setting libmutter_private_la_CFLAGS, the files shared with
|
# by setting libmutter_private_la_CFLAGS, the files shared with
|
||||||
# mutter proper will be compiled with different names.
|
# mutter proper will be compiled with different names.
|
||||||
@@ -267,5 +274,49 @@ EXTRA_DIST=$(desktopfiles_files) \
|
|||||||
$(wmproperties_in_files) \
|
$(wmproperties_in_files) \
|
||||||
$(schema_in_files) \
|
$(schema_in_files) \
|
||||||
libmutter-private.pc.in \
|
libmutter-private.pc.in \
|
||||||
mutter-plugins.pc.in
|
mutter-plugins.pc.in \
|
||||||
|
mutter-marshal.list
|
||||||
|
|
||||||
|
BUILT_SOURCES += $(mutter_built_sources)
|
||||||
|
MUTTER_STAMP_FILES = stamp-mutter-marshal.h
|
||||||
|
CLEANFILES += $(MUTTER_STAMP_FILES)
|
||||||
|
|
||||||
|
mutter-marshal.h: stamp-mutter-marshal.h
|
||||||
|
@true
|
||||||
|
stamp-mutter-marshal.h: Makefile mutter-marshal.list
|
||||||
|
$(GLIB_GENMARSHAL) \
|
||||||
|
--prefix=_mutter_marshal \
|
||||||
|
--header \
|
||||||
|
$(srcdir)/mutter-marshal.list > xgen-tmh && \
|
||||||
|
(cmp -s xgen-tmh mutter-marshal.h || cp -f xgen-tmh mutter-marshal.h) && \
|
||||||
|
rm -f xgen-tmh && \
|
||||||
|
echo timestamp > $(@F)
|
||||||
|
|
||||||
|
mutter-marshal.c: Makefile mutter-marshal.list
|
||||||
|
(echo "#include \"mutter-marshal.h\"" ; \
|
||||||
|
$(GLIB_GENMARSHAL) \
|
||||||
|
--prefix=_mutter_marshal \
|
||||||
|
--body \
|
||||||
|
$(srcdir)/mutter-marshal.list ) > xgen-tmc && \
|
||||||
|
cp -f xgen-tmc mutter-marshal.c && \
|
||||||
|
rm -f xgen-tmc
|
||||||
|
|
||||||
|
mutter-enum-types.h: stamp-mutter-enum-types.h Makefile
|
||||||
|
@true
|
||||||
|
stamp-mutter-enum-types.h: $(mutter_source_h) mutter-enum-types.h.in
|
||||||
|
( cd $(srcdir) && \
|
||||||
|
$(GLIB_MKENUMS) \
|
||||||
|
--template $(srcdir)/mutter-enum-types.h.in \
|
||||||
|
$(libmutterinclude_base_headers) ) >> xgen-teth && \
|
||||||
|
(cmp xgen-teth mutter-enum-types.h || cp xgen-teth mutter-enum-types.h) && \
|
||||||
|
rm -f xgen-teth && \
|
||||||
|
echo timestamp > $(@F)
|
||||||
|
|
||||||
|
mutter-enum-types.c: stamp-mutter-enum-types.h mutter-enum-types.c.in
|
||||||
|
( cd $(srcdir) && \
|
||||||
|
$(GLIB_MKENUMS) \
|
||||||
|
--template $(srcdir)/mutter-enum-types.c.in \
|
||||||
|
$(libmutterinclude_base_headers) ) >> xgen-tetc && \
|
||||||
|
cp xgen-tetc mutter-enum-types.c && \
|
||||||
|
rm -f xgen-tetc
|
||||||
|
|
||||||
|
@@ -246,4 +246,9 @@ void meta_screen_composite_all_windows (MetaScreen *screen);
|
|||||||
|
|
||||||
void meta_screen_restacked (MetaScreen *screen);
|
void meta_screen_restacked (MetaScreen *screen);
|
||||||
|
|
||||||
|
void meta_screen_workspace_switched (MetaScreen *screen,
|
||||||
|
int from,
|
||||||
|
int to,
|
||||||
|
MetaMotionDirection direction);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -39,6 +39,8 @@
|
|||||||
#include "xprops.h"
|
#include "xprops.h"
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "alttabhandlerdefault.h"
|
#include "alttabhandlerdefault.h"
|
||||||
|
#include "mutter-marshal.h"
|
||||||
|
#include "mutter-enum-types.h"
|
||||||
|
|
||||||
#ifdef HAVE_SOLARIS_XINERAMA
|
#ifdef HAVE_SOLARIS_XINERAMA
|
||||||
#include <X11/extensions/xinerama.h>
|
#include <X11/extensions/xinerama.h>
|
||||||
@@ -80,6 +82,9 @@ enum
|
|||||||
{
|
{
|
||||||
RESTACKED,
|
RESTACKED,
|
||||||
TOGGLE_RECORDING,
|
TOGGLE_RECORDING,
|
||||||
|
WORKSPACE_ADDED,
|
||||||
|
WORKSPACE_REMOVED,
|
||||||
|
WORKSPACE_SWITCHED,
|
||||||
|
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
@@ -159,6 +164,41 @@ meta_screen_class_init (MetaScreenClass *klass)
|
|||||||
1, G_MAXINT, 1,
|
1, G_MAXINT, 1,
|
||||||
G_PARAM_READABLE);
|
G_PARAM_READABLE);
|
||||||
|
|
||||||
|
screen_signals[WORKSPACE_ADDED] =
|
||||||
|
g_signal_new ("workspace-added",
|
||||||
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
0,
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__INT,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_INT);
|
||||||
|
|
||||||
|
screen_signals[WORKSPACE_REMOVED] =
|
||||||
|
g_signal_new ("workspace-removed",
|
||||||
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
0,
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__INT,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_INT);
|
||||||
|
|
||||||
|
screen_signals[WORKSPACE_SWITCHED] =
|
||||||
|
g_signal_new ("workspace-switched",
|
||||||
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
0,
|
||||||
|
NULL, NULL,
|
||||||
|
_mutter_marshal_VOID__INT_INT_ENUM,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
3,
|
||||||
|
G_TYPE_INT,
|
||||||
|
G_TYPE_INT,
|
||||||
|
MUTTER_TYPE_MOTION_DIRECTION);
|
||||||
|
|
||||||
screen_signals[TOGGLE_RECORDING] =
|
screen_signals[TOGGLE_RECORDING] =
|
||||||
g_signal_new ("toggle-recording",
|
g_signal_new ("toggle-recording",
|
||||||
G_TYPE_FROM_CLASS (klass),
|
G_TYPE_FROM_CLASS (klass),
|
||||||
@@ -1241,6 +1281,7 @@ meta_screen_remove_workspace (MetaScreen *screen, MetaWorkspace *workspace,
|
|||||||
GList *l;
|
GList *l;
|
||||||
MetaWorkspace *neighbour = NULL;
|
MetaWorkspace *neighbour = NULL;
|
||||||
GList *next = NULL;
|
GList *next = NULL;
|
||||||
|
int index;
|
||||||
|
|
||||||
l = screen->workspaces;
|
l = screen->workspaces;
|
||||||
while (l)
|
while (l)
|
||||||
@@ -1276,6 +1317,9 @@ meta_screen_remove_workspace (MetaScreen *screen, MetaWorkspace *workspace,
|
|||||||
if (workspace == screen->active_workspace)
|
if (workspace == screen->active_workspace)
|
||||||
meta_workspace_activate (neighbour, timestamp);
|
meta_workspace_activate (neighbour, timestamp);
|
||||||
|
|
||||||
|
/* To emit the signal after removing the workspace */
|
||||||
|
index = meta_workspace_index (workspace);
|
||||||
|
|
||||||
/* This also removes the workspace from the screens list */
|
/* This also removes the workspace from the screens list */
|
||||||
meta_workspace_remove (workspace);
|
meta_workspace_remove (workspace);
|
||||||
|
|
||||||
@@ -1293,6 +1337,7 @@ meta_screen_remove_workspace (MetaScreen *screen, MetaWorkspace *workspace,
|
|||||||
|
|
||||||
meta_screen_queue_workarea_recalc (screen);
|
meta_screen_queue_workarea_recalc (screen);
|
||||||
|
|
||||||
|
g_signal_emit (screen, screen_signals[WORKSPACE_REMOVED], 0, index);
|
||||||
g_object_notify (G_OBJECT (screen), "n-workspaces");
|
g_object_notify (G_OBJECT (screen), "n-workspaces");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1328,6 +1373,8 @@ meta_screen_append_new_workspace (MetaScreen *screen, gboolean activate,
|
|||||||
|
|
||||||
meta_screen_queue_workarea_recalc (screen);
|
meta_screen_queue_workarea_recalc (screen);
|
||||||
|
|
||||||
|
g_signal_emit (screen, screen_signals[WORKSPACE_ADDED],
|
||||||
|
0, meta_workspace_index (w));
|
||||||
g_object_notify (G_OBJECT (screen), "n-workspaces");
|
g_object_notify (G_OBJECT (screen), "n-workspaces");
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
@@ -3012,3 +3059,14 @@ meta_screen_restacked (MetaScreen *screen)
|
|||||||
{
|
{
|
||||||
g_signal_emit (screen, screen_signals[RESTACKED], 0);
|
g_signal_emit (screen, screen_signals[RESTACKED], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_screen_workspace_switched (MetaScreen *screen,
|
||||||
|
int from,
|
||||||
|
int to,
|
||||||
|
MetaMotionDirection direction)
|
||||||
|
{
|
||||||
|
g_signal_emit (screen, screen_signals[WORKSPACE_SWITCHED], 0,
|
||||||
|
from, to, direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -456,8 +456,14 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
|
|||||||
MetaWindow *focus_this,
|
MetaWindow *focus_this,
|
||||||
guint32 timestamp)
|
guint32 timestamp)
|
||||||
{
|
{
|
||||||
MetaWorkspace *old;
|
MetaWorkspace *old;
|
||||||
MetaWindow *move_window;
|
MetaWindow *move_window;
|
||||||
|
MetaScreen *screen;
|
||||||
|
MetaDisplay *display;
|
||||||
|
MetaCompositor *comp;
|
||||||
|
MetaWorkspaceLayout layout1, layout2;
|
||||||
|
gint num_workspaces, current_space, new_space;
|
||||||
|
MetaMotionDirection direction;
|
||||||
|
|
||||||
meta_verbose ("Activating workspace %d\n",
|
meta_verbose ("Activating workspace %d\n",
|
||||||
meta_workspace_index (workspace));
|
meta_workspace_index (workspace));
|
||||||
@@ -467,7 +473,7 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
|
|||||||
|
|
||||||
/* Note that old can be NULL; e.g. when starting up */
|
/* Note that old can be NULL; e.g. when starting up */
|
||||||
old = workspace->screen->active_workspace;
|
old = workspace->screen->active_workspace;
|
||||||
|
|
||||||
workspace->screen->active_workspace = workspace;
|
workspace->screen->active_workspace = workspace;
|
||||||
|
|
||||||
set_active_space_hint (workspace->screen);
|
set_active_space_hint (workspace->screen);
|
||||||
@@ -529,60 +535,55 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
|
|||||||
meta_workspace_focus_default_window (workspace, NULL, timestamp);
|
meta_workspace_focus_default_window (workspace, NULL, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
/*
|
||||||
/*
|
* Notify the compositor that the active workspace changed.
|
||||||
* Notify the compositor that the active workspace changed.
|
*/
|
||||||
*/
|
screen = workspace->screen;
|
||||||
MetaScreen *screen = workspace->screen;
|
display = meta_screen_get_display (screen);
|
||||||
MetaDisplay *display = meta_screen_get_display (screen);
|
comp = meta_display_get_compositor (display);
|
||||||
MetaCompositor *comp = meta_display_get_compositor (display);
|
direction = 0;
|
||||||
MetaWorkspaceLayout layout1, layout2;
|
|
||||||
gint num_workspaces, current_space, new_space;
|
|
||||||
MetaMotionDirection direction = 0;
|
|
||||||
|
|
||||||
if (!comp)
|
current_space = meta_workspace_index (old);
|
||||||
return;
|
new_space = meta_workspace_index (workspace);
|
||||||
|
num_workspaces = meta_screen_get_n_workspaces (workspace->screen);
|
||||||
|
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
||||||
|
current_space, &layout1);
|
||||||
|
|
||||||
current_space = meta_workspace_index (old);
|
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
||||||
new_space = meta_workspace_index (workspace);
|
new_space, &layout2);
|
||||||
|
|
||||||
num_workspaces = meta_screen_get_n_workspaces (workspace->screen);
|
if (layout1.current_col < layout2.current_col)
|
||||||
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
direction = META_MOTION_RIGHT;
|
||||||
current_space, &layout1);
|
if (layout1.current_col > layout2.current_col)
|
||||||
|
direction = META_MOTION_LEFT;
|
||||||
|
|
||||||
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
if (layout1.current_row < layout2.current_row)
|
||||||
new_space, &layout2);
|
{
|
||||||
|
if (!direction)
|
||||||
|
direction = META_MOTION_DOWN;
|
||||||
|
else if (direction == META_MOTION_RIGHT)
|
||||||
|
direction = META_MOTION_DOWN_RIGHT;
|
||||||
|
else
|
||||||
|
direction = META_MOTION_DOWN_LEFT;
|
||||||
|
}
|
||||||
|
|
||||||
if (layout1.current_col < layout2.current_col)
|
if (layout1.current_row > layout2.current_row)
|
||||||
direction = META_MOTION_RIGHT;
|
{
|
||||||
if (layout1.current_col > layout2.current_col)
|
if (!direction)
|
||||||
direction = META_MOTION_LEFT;
|
direction = META_MOTION_UP;
|
||||||
|
else if (direction == META_MOTION_RIGHT)
|
||||||
|
direction = META_MOTION_UP_RIGHT;
|
||||||
|
else
|
||||||
|
direction = META_MOTION_UP_LEFT;
|
||||||
|
}
|
||||||
|
|
||||||
if (layout1.current_row < layout2.current_row)
|
meta_screen_free_workspace_layout (&layout1);
|
||||||
{
|
meta_screen_free_workspace_layout (&layout2);
|
||||||
if (!direction)
|
|
||||||
direction = META_MOTION_DOWN;
|
|
||||||
else if (direction == META_MOTION_RIGHT)
|
|
||||||
direction = META_MOTION_DOWN_RIGHT;
|
|
||||||
else
|
|
||||||
direction = META_MOTION_DOWN_LEFT;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (layout1.current_row > layout2.current_row)
|
meta_compositor_switch_workspace (comp, screen, old, workspace, direction);
|
||||||
{
|
|
||||||
if (!direction)
|
|
||||||
direction = META_MOTION_UP;
|
|
||||||
else if (direction == META_MOTION_RIGHT)
|
|
||||||
direction = META_MOTION_UP_RIGHT;
|
|
||||||
else
|
|
||||||
direction = META_MOTION_UP_LEFT;
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_screen_free_workspace_layout (&layout1);
|
/* Emit switched signal from screen.c */
|
||||||
meta_screen_free_workspace_layout (&layout2);
|
meta_screen_workspace_switched (screen, current_space, new_space, direction);
|
||||||
|
|
||||||
meta_compositor_switch_workspace (comp, screen, old, workspace, direction);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@@ -233,6 +233,22 @@ typedef enum
|
|||||||
META_DIRECTION_VERTICAL = META_DIRECTION_UP | META_DIRECTION_DOWN,
|
META_DIRECTION_VERTICAL = META_DIRECTION_UP | META_DIRECTION_DOWN,
|
||||||
} MetaDirection;
|
} MetaDirection;
|
||||||
|
|
||||||
|
/* Negative to avoid conflicting with real workspace
|
||||||
|
* numbers
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
META_MOTION_UP = -1,
|
||||||
|
META_MOTION_DOWN = -2,
|
||||||
|
META_MOTION_LEFT = -3,
|
||||||
|
META_MOTION_RIGHT = -4,
|
||||||
|
/* These are only used for effects */
|
||||||
|
META_MOTION_UP_LEFT = -5,
|
||||||
|
META_MOTION_UP_RIGHT = -6,
|
||||||
|
META_MOTION_DOWN_LEFT = -7,
|
||||||
|
META_MOTION_DOWN_RIGHT = -8
|
||||||
|
} MetaMotionDirection;
|
||||||
|
|
||||||
/* Sometimes we want to talk about sides instead of directions; note
|
/* Sometimes we want to talk about sides instead of directions; note
|
||||||
* that the values must be as follows or meta_window_update_struts()
|
* that the values must be as follows or meta_window_update_struts()
|
||||||
* won't work. Using these values also is a safety blanket since
|
* won't work. Using these values also is a safety blanket since
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
#include "workspace.h"
|
||||||
|
|
||||||
#define META_TYPE_SCREEN (meta_screen_get_type ())
|
#define META_TYPE_SCREEN (meta_screen_get_type ())
|
||||||
#define META_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_SCREEN, MetaScreen))
|
#define META_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_SCREEN, MetaScreen))
|
||||||
|
@@ -37,22 +37,6 @@
|
|||||||
#include "boxes.h"
|
#include "boxes.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
/* Negative to avoid conflicting with real workspace
|
|
||||||
* numbers
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
META_MOTION_UP = -1,
|
|
||||||
META_MOTION_DOWN = -2,
|
|
||||||
META_MOTION_LEFT = -3,
|
|
||||||
META_MOTION_RIGHT = -4,
|
|
||||||
/* These are only used for effects */
|
|
||||||
META_MOTION_UP_LEFT = -5,
|
|
||||||
META_MOTION_UP_RIGHT = -6,
|
|
||||||
META_MOTION_DOWN_LEFT = -7,
|
|
||||||
META_MOTION_DOWN_RIGHT = -8
|
|
||||||
} MetaMotionDirection;
|
|
||||||
|
|
||||||
#define META_TYPE_WORKSPACE (meta_workspace_get_type ())
|
#define META_TYPE_WORKSPACE (meta_workspace_get_type ())
|
||||||
#define META_WORKSPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_WORKSPACE, MetaWorkspace))
|
#define META_WORKSPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_WORKSPACE, MetaWorkspace))
|
||||||
#define META_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_WORKSPACE, MetaWorkspaceClass))
|
#define META_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_WORKSPACE, MetaWorkspaceClass))
|
||||||
|
Reference in New Issue
Block a user