move the client and client-list menus into the 'kernel'
Dana Jansens danakj@orodu.net
8 files changed,
166 insertions(+),
266 deletions(-)
M
Makefile.am
→
Makefile.am
@@ -3,7 +3,6 @@
themedir = $(datadir)/openbox/themes localedir = $(datadir)/locale rcdir = $(datadir)/openbox -plugindir = $(libdir)/openbox/plugins desktopfilesdir = $(datadir)/gnome/wm-properties pixmapdir = $(datadir)/pixmaps@@ -24,13 +23,6 @@
bin_PROGRAMS = \ kernel/openbox \ tools/kdetrayproxy/kdetrayproxy - -plugin_LTLIBRARIES = \ - plugins/menu/client_menu.la \ - plugins/menu/client_list_menu.la -# plugins/menu/timed_menu.la \ -# plugins/menu/fifo_menu.la \ -# plugins/menu/include_menu.la \ if OBCONF bin_PROGRAMS += \@@ -103,7 +95,6 @@ $(GMODULE_CFLAGS) \
$(LIBSN_CFLAGS) \ $(XML_CFLAGS) \ -DLOCALEDIR=\"$(localedir)\" \ - -DPLUGINDIR=\"$(plugindir)\" \ -DRCDIR=\"$(rcdir)\" \ -DG_LOG_DOMAIN=\"Openbox\" kernel_openbox_LDADD = \@@ -128,6 +119,10 @@ kernel/action.c \
kernel/action.h \ kernel/client.c \ kernel/client.h \ + kernel/client_list_menu.c \ + kernel/client_list_menu.h \ + kernel/client_menu.c \ + kernel/client_menu.h \ kernel/config.c \ kernel/config.h \ kernel/debug.c \@@ -167,8 +162,6 @@ kernel/openbox.c \
kernel/openbox.h \ kernel/place.c \ kernel/place.h \ - kernel/plugin.c \ - kernel/plugin.h \ kernel/popup.c \ kernel/popup.h \ kernel/prop.c \@@ -190,78 +183,7 @@ kernel/translate.h \
kernel/window.c \ kernel/window.h \ kernel/xerror.c \ - kernel/xerror.h \ - plugins/interface.h - -## plugins/menu ## - -plugins_menu_timed_menu_la_CPPFLAGS = \ - $(XFT_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(LIBSN_CFLAGS) \ - $(XML_CFLAGS) \ - -DPLUGINDIR=\"$(plugindir)\" \ - -DG_LOG_DOMAIN=\"Plugin-Timed-Menu\" -plugins_menu_timed_menu_la_LDFLAGS = \ - -module \ - -avoid-version -plugins_menu_timed_menu_la_SOURCES = \ - plugins/menu/timed_menu.c \ - plugins/menu/timed_menu.h - -plugins_menu_fifo_menu_la_CPPFLAGS = \ - $(XFT_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(LIBSN_CFLAGS) \ - $(XML_CFLAGS) \ - -DPLUGINDIR=\"$(plugindir)\" \ - -DG_LOG_DOMAIN=\"Plugin-Fifo-Menu\" -plugins_menu_fifo_menu_la_LDFLAGS = \ - -module \ - -avoid-version -plugins_menu_fifo_menu_la_SOURCES = \ - plugins/menu/fifo_menu.c \ - plugins/menu/fifo_menu.h - -plugins_menu_client_menu_la_CPPFLAGS = \ - $(XFT_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(LIBSN_CFLAGS) \ - $(XML_CFLAGS) \ - -DPLUGINDIR=\"$(plugindir)\" \ - -DG_LOG_DOMAIN=\"Plugin-Client-Menu\" -plugins_menu_client_menu_la_LDFLAGS = \ - -module \ - -avoid-version -plugins_menu_client_menu_la_SOURCES = \ - plugins/menu/client_menu.c - -plugins_menu_include_menu_la_CPPFLAGS = \ - $(XFT_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(LIBSN_CFLAGS) \ - $(XML_CFLAGS) \ - -DPLUGINDIR=\"$(plugindir)\" \ - -DG_LOG_DOMAIN=\"Plugin-Include-Menu\" -plugins_menu_include_menu_la_LDFLAGS = \ - -module \ - -avoid-version -plugins_menu_include_menu_la_SOURCES = \ - plugins/menu/include_menu.c - -plugins_menu_client_list_menu_la_CPPFLAGS = \ - $(XFT_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(LIBSN_CFLAGS) \ - $(XML_CFLAGS) \ - -DPLUGINDIR=\"$(plugindir)\" \ - -DG_LOG_DOMAIN=\"Plugin-Client-List-Menu\" -plugins_menu_client_list_menu_la_LDFLAGS = \ - -module \ - -avoid-version -plugins_menu_client_list_menu_la_SOURCES = \ -o plugins/menu/client_list_menu.c - + kernel/xerror.h ## obconf ##
M
data/rc3
→
data/rc3
@@ -132,9 +132,7 @@ <mousebind button="A-Middle" action="click">
<action name="lower"/> </mousebind> <mousebind button="A-Right" action="press"> - <action name="showmenu"> - <menu plugin="client_menu">client-menu</menu> - </action> + <action name="showmenu"><menu>client-menu</menu></action> </mousebind> <mousebind button="A-Up" action="click"> <action name="desktopright"/>@@ -172,9 +170,7 @@ <mousebind button="Down" action="click">
<action name="unshade"/> </mousebind> <mousebind button="Right" action="press"> - <action name="showmenu"> - <menu plugin="client_menu">client-menu</menu> - </action> + <action name="showmenu"><menu>client-menu</menu></action> </mousebind> </context> <context name="handle">@@ -240,14 +236,10 @@ <mousebind button="Left" action="press">
<action name="focus"/> </mousebind> <mousebind button="Right" action="press"> - <action name="showmenu"> - <menu plugin="client_menu">client-menu</menu> - </action> + <action name="showmenu"><menu>client-menu</menu></action> </mousebind> <mousebind button="Left" action="click"> - <action name="showmenu"> - <menu plugin="client_menu">client-menu</menu> - </action> + <action name="showmenu"><menu>client-menu</menu></action> </mousebind> <mousebind button="Left" action="doubleclick"> <action name="close"/>@@ -313,9 +305,7 @@ <mousebind button="A-Down" action="click">
<action name="desktopleft"/> </mousebind> <mousebind button="Middle" action="press"> - <action name="showmenu"> - <menu plugin="client_list_menu">client-list-menu</menu> - </action> + <action name="showmenu"><menu>client-list-menu</menu></action> </mousebind> <mousebind button="Right" action="press"> <action name="showmenu">
D
plugins/menu/client_list_menu.c
@@ -1,132 +0,0 @@
-#include "kernel/openbox.h" -#include "kernel/menu.h" -#include "kernel/menuframe.h" -#include "kernel/action.h" -#include "kernel/screen.h" -#include "kernel/client.h" -#include "kernel/focus.h" -#include "gettext.h" - -#include "render/theme.h" - -#include <glib.h> - -#define MENU_NAME "client-list-menu" - -typedef struct { - /* how many desktop menus we've made */ - guint desktops; -} MenuData; - -typedef struct { - guint desktop; -} DesktopData; - -void plugin_setup_config() { } - -static void desk_menu_update(ObMenuFrame *frame, gpointer data) -{ - ObMenu *menu = frame->menu; - DesktopData *d = data; - GList *it; - gint i; - - menu_clear_entries(menu->name); - - for (it = focus_order[d->desktop], i = 0; it; it = g_list_next(it), ++i) { - ObClient *c = it->data; - if (client_normal(c)) { - GSList *acts; - ObAction* act; - ObMenuEntry *e; - ObClientIcon *icon; - - act = action_from_string("activate"); - act->data.activate.c = c; - acts = g_slist_prepend(NULL, act); - e = menu_add_normal(menu->name, i, - (c->iconic ? c->icon_title : c->title), acts); - - if ((icon = client_icon(c, 32, 32))) { - e->data.normal.icon_width = icon->width; - e->data.normal.icon_height = icon->height; - e->data.normal.icon_data = icon->data; - } - } - } - -} - -/* executes it without changing the client in the actions, since we set that - when we make the actions! */ -static void desk_menu_execute(ObMenuEntry *self, gpointer data) -{ - GSList *it; - - for (it = self->data.normal.actions; it; it = g_slist_next(it)) - { - ObAction *act = it->data; - act->func(&act->data); - } -} - -static void desk_menu_destroy(ObMenu *menu, gpointer data) -{ - DesktopData *d = data; - - g_free(d); -} - -static void self_update(ObMenuFrame *frame, gpointer data) -{ - guint i; - MenuData *d = data; - - menu_clear_entries(MENU_NAME); - - for (i = 0; i < screen_num_desktops; ++i) { - gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i); - DesktopData *data = g_new(DesktopData, 1); - - data->desktop = i; - menu_new(name, screen_desktop_names[i], data); - menu_set_update_func(name, desk_menu_update); - menu_set_execute_func(name, desk_menu_execute); - menu_set_destroy_func(name, desk_menu_destroy); - - menu_add_submenu(MENU_NAME, 0, name); - - g_free(name); - } - - d->desktops = MAX(d->desktops, screen_num_desktops); -} - -static void self_destroy(ObMenu *menu, gpointer data) -{ - MenuData *d = data; - guint i; - - for (i = 0; i < d->desktops; ++i) { - gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i); - menu_free(name); - g_free(name); - } - g_free(d); -} - -void plugin_startup() -{ - MenuData *data; - - data = g_new(MenuData, 1); - data->desktops = 0; - menu_new(MENU_NAME, _("Desktops"), data); - menu_set_update_func(MENU_NAME, self_update); - menu_set_destroy_func(MENU_NAME, self_destroy); -} - -void plugin_shutdown() -{ - menu_free(MENU_NAME); -}