forked from enlightenment/enlightenment
parent
04c01cc972
commit
1186949fbc
|
@ -5204,7 +5204,6 @@ _e_border_eval(E_Border *bd)
|
|||
|
||||
if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
|
||||
{
|
||||
/* TODO: Make this user options */
|
||||
if (!bd->client.netwm.state.skip_pager)
|
||||
{
|
||||
bd->client.netwm.state.skip_pager = 1;
|
||||
|
@ -5837,6 +5836,10 @@ _e_border_eval(E_Border *bd)
|
|||
}
|
||||
if (rem->apply & E_REMEMBER_APPLY_SKIP_WINLIST)
|
||||
bd->user_skip_winlist = rem->prop.skip_winlist;
|
||||
if (rem->apply & E_REMEMBER_APPLY_SKIP_PAGER)
|
||||
bd->client.netwm.state.skip_pager = rem->prop.skip_pager;
|
||||
if (rem->apply & E_REMEMBER_APPLY_SKIP_TASKBAR)
|
||||
bd->client.netwm.state.skip_taskbar = rem->prop.skip_taskbar;
|
||||
if (rem->apply & E_REMEMBER_APPLY_ICON_PREF)
|
||||
bd->icon_preference = rem->prop.icon_preference;
|
||||
if (rem->apply & E_REMEMBER_SET_FOCUS_ON_START)
|
||||
|
|
|
@ -24,6 +24,7 @@ static void _e_border_menu_cb_below(void *data, E_Menu *m, E_Menu_Item *mi);
|
|||
static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_skip_pager(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _e_border_menu_cb_pin(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
|
@ -660,6 +661,7 @@ _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
bd->user_skip_winlist = e_menu_item_toggle_get(mi);
|
||||
else
|
||||
bd->user_skip_winlist = 0;
|
||||
bd->changed = 1;
|
||||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
}
|
||||
|
||||
|
@ -679,6 +681,22 @@ _e_border_menu_cb_skip_pager(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Border *bd;
|
||||
|
||||
bd = data;
|
||||
if (!bd) return;
|
||||
|
||||
if ((bd->client.icccm.accepts_focus) || (bd->client.icccm.take_focus))
|
||||
bd->client.netwm.state.skip_taskbar = e_menu_item_toggle_get(mi);
|
||||
else
|
||||
bd->client.netwm.state.skip_taskbar = 0;
|
||||
bd->changed = 1;
|
||||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
|
@ -985,6 +1003,16 @@ _e_border_menu_cb_skip(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
e_theme_edje_file_get("base/theme/borders",
|
||||
"e/widgets/border/default/skip_pager"),
|
||||
"e/widgets/border/default/skip_pager");
|
||||
|
||||
submi = e_menu_item_new(subm);
|
||||
e_menu_item_label_set(submi, _("Taskbar"));
|
||||
e_menu_item_check_set(submi, 1);
|
||||
e_menu_item_toggle_set(submi, bd->client.netwm.state.skip_taskbar);
|
||||
e_menu_item_callback_set(submi, _e_border_menu_cb_skip_taskbar, bd);
|
||||
e_menu_item_icon_edje_set(submi,
|
||||
e_theme_edje_file_get("base/theme/borders",
|
||||
"e/widgets/border/default/skip_taskbar"),
|
||||
"e/widgets/border/default/skip_taskbar");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -42,6 +42,8 @@ struct _E_Config_Dialog_Data
|
|||
int apply_shade;
|
||||
int apply_zone;
|
||||
int apply_skip_winlist;
|
||||
int apply_skip_pager;
|
||||
int apply_skip_taskbar;
|
||||
int apply_run;
|
||||
int apply_icon_pref;
|
||||
int set_focus_on_start;
|
||||
|
@ -99,6 +101,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SHADE) cfdata->remember.apply_shade = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_ZONE) cfdata->remember.apply_zone = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SKIP_WINLIST) cfdata->remember.apply_skip_winlist = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SKIP_PAGER) cfdata->remember.apply_skip_pager = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SKIP_TASKBAR) cfdata->remember.apply_skip_taskbar = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_RUN) cfdata->remember.apply_run = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_ICON_PREF) cfdata->remember.apply_icon_pref = 1;
|
||||
if (cfdata->border->remember->apply & E_REMEMBER_SET_FOCUS_ON_START) cfdata->remember.set_focus_on_start = 1;
|
||||
|
@ -110,6 +114,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
(cfdata->remember.apply_border) && (cfdata->remember.apply_sticky) &&
|
||||
(cfdata->remember.apply_desktop) && (cfdata->remember.apply_shade) &&
|
||||
(cfdata->remember.apply_zone) && (cfdata->remember.apply_skip_winlist) &&
|
||||
(cfdata->remember.apply_skip_pager) && (cfdata->remember.apply_skip_taskbar) &&
|
||||
(cfdata->remember.set_focus_on_start))
|
||||
cfdata->mode = MODE_ALL;
|
||||
else if ((cfdata->remember.apply_pos) && (cfdata->remember.apply_size) &&
|
||||
|
@ -276,7 +281,10 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
else if (cfdata->mode == MODE_GEOMETRY_LOCKS)
|
||||
cfdata->border->remember->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_LOCKS;
|
||||
else if (cfdata->mode == MODE_ALL)
|
||||
cfdata->border->remember->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_LAYER | E_REMEMBER_APPLY_LOCKS | E_REMEMBER_APPLY_BORDER | E_REMEMBER_APPLY_STICKY | E_REMEMBER_APPLY_DESKTOP | E_REMEMBER_APPLY_SHADE | E_REMEMBER_APPLY_ZONE | E_REMEMBER_APPLY_SKIP_WINLIST;
|
||||
cfdata->border->remember->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_LAYER |
|
||||
E_REMEMBER_APPLY_LOCKS | E_REMEMBER_APPLY_BORDER | E_REMEMBER_APPLY_STICKY |
|
||||
E_REMEMBER_APPLY_DESKTOP | E_REMEMBER_APPLY_SHADE | E_REMEMBER_APPLY_ZONE |
|
||||
E_REMEMBER_APPLY_SKIP_WINLIST | E_REMEMBER_APPLY_SKIP_PAGER | E_REMEMBER_APPLY_SKIP_TASKBAR;
|
||||
cfdata->border->remember->apply_first_only = 0;
|
||||
e_remember_update(cfdata->border->remember, cfdata->border);
|
||||
}
|
||||
|
@ -295,6 +303,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
(cfdata->remember.apply_border) || (cfdata->remember.apply_sticky) ||
|
||||
(cfdata->remember.apply_desktop) || (cfdata->remember.apply_shade) ||
|
||||
(cfdata->remember.apply_zone) || (cfdata->remember.apply_skip_winlist) ||
|
||||
(cfdata->remember.apply_skip_pager) || (cfdata->remember.apply_skip_taskbar) ||
|
||||
(cfdata->remember.apply_run) || (cfdata->remember.apply_icon_pref) ||
|
||||
(cfdata->remember.set_focus_on_start)))
|
||||
{
|
||||
|
@ -403,6 +412,8 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
if (cfdata->remember.apply_shade) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SHADE;
|
||||
if (cfdata->remember.apply_zone) cfdata->border->remember->apply |= E_REMEMBER_APPLY_ZONE;
|
||||
if (cfdata->remember.apply_skip_winlist) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SKIP_WINLIST;
|
||||
if (cfdata->remember.apply_skip_pager) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SKIP_PAGER;
|
||||
if (cfdata->remember.apply_skip_taskbar) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SKIP_TASKBAR;
|
||||
if (cfdata->remember.apply_run) cfdata->border->remember->apply |= E_REMEMBER_APPLY_RUN;
|
||||
if (cfdata->remember.apply_icon_pref) cfdata->border->remember->apply |= E_REMEMBER_APPLY_ICON_PREF;
|
||||
if (cfdata->remember.set_focus_on_start) cfdata->border->remember->apply |= E_REMEMBER_SET_FOCUS_ON_START;
|
||||
|
@ -506,15 +517,19 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
ob = e_widget_check_add(evas, _("Icon Preference"), &(cfdata->remember.apply_icon_pref));
|
||||
e_widget_frametable_object_append(of, ob, 0, 5, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Stickiness"), &(cfdata->remember.apply_sticky));
|
||||
e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
|
||||
e_widget_frametable_object_append(of, ob, 0, 6, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Virtual Desktop"), &(cfdata->remember.apply_desktop));
|
||||
e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1);
|
||||
e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Shaded state"), &(cfdata->remember.apply_shade));
|
||||
e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1);
|
||||
e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Current Screen"), &(cfdata->remember.apply_zone));
|
||||
e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 1, 1);
|
||||
e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Skip Window List"), &(cfdata->remember.apply_skip_winlist));
|
||||
e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Skip Pager"), &(cfdata->remember.apply_skip_pager));
|
||||
e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 1, 1);
|
||||
ob = e_widget_check_add(evas, _("Skip Taskbar"), &(cfdata->remember.apply_skip_taskbar));
|
||||
e_widget_frametable_object_append(of, ob, 1, 5, 1, 1, 1, 1, 1, 1);
|
||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
|
||||
ob = e_widget_check_add(evas, _("Match only one window"), &(cfdata->remember.apply_first_only));
|
||||
|
|
|
@ -288,6 +288,8 @@ e_remember_update(E_Remember *rem, E_Border *bd)
|
|||
rem->prop.shaded = 50 + bd->shade.dir;
|
||||
|
||||
rem->prop.skip_winlist = bd->user_skip_winlist;
|
||||
rem->prop.skip_pager = bd->client.netwm.state.skip_pager;
|
||||
rem->prop.skip_taskbar = bd->client.netwm.state.skip_taskbar;
|
||||
rem->prop.icon_preference = bd->icon_preference;
|
||||
|
||||
e_desk_xy_get(bd->desk, &rem->prop.desk_x, &rem->prop.desk_y);
|
||||
|
|
|
@ -23,8 +23,10 @@ typedef struct _E_Remember E_Remember;
|
|||
#define E_REMEMBER_APPLY_ZONE (1 << 8)
|
||||
#define E_REMEMBER_APPLY_RUN (1 << 9)
|
||||
#define E_REMEMBER_APPLY_SKIP_WINLIST (1 << 10)
|
||||
#define E_REMEMBER_APPLY_ICON_PREF (1 << 11)
|
||||
#define E_REMEMBER_SET_FOCUS_ON_START (1 << 12)
|
||||
#define E_REMEMBER_APPLY_SKIP_PAGER (1 << 11)
|
||||
#define E_REMEMBER_APPLY_SKIP_TASKBAR (1 << 12)
|
||||
#define E_REMEMBER_APPLY_ICON_PREF (1 << 13)
|
||||
#define E_REMEMBER_SET_FOCUS_ON_START (1 << 14)
|
||||
|
||||
#else
|
||||
#ifndef E_REMEMBER_H
|
||||
|
@ -81,6 +83,8 @@ struct _E_Remember
|
|||
unsigned char sticky;
|
||||
unsigned char shaded;
|
||||
unsigned char skip_winlist;
|
||||
unsigned char skip_pager;
|
||||
unsigned char skip_taskbar;
|
||||
unsigned char icon_preference;
|
||||
|
||||
int desk_x, desk_y;
|
||||
|
|
|
@ -8,12 +8,16 @@
|
|||
#include "e_mod_main.h"
|
||||
#define D(x) do {printf("### DBG line %d ### ", __LINE__); printf x; fflush(stdout);} while (0)
|
||||
|
||||
#define MAGIC_IMPORT 0x427781cb
|
||||
|
||||
typedef struct _Import Import;
|
||||
|
||||
struct _Import {
|
||||
E_Config_Dialog *parent;
|
||||
int magic;
|
||||
|
||||
E_Config_Dialog *parent;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
E_Dialog *dia;
|
||||
E_Dialog *dia;
|
||||
};
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
|
@ -73,6 +77,8 @@ e_int_config_wallpaper_web (E_Config_Dialog *parent)
|
|||
if (!import)
|
||||
return NULL;
|
||||
|
||||
import->magic = MAGIC_IMPORT;
|
||||
|
||||
dia = e_dialog_new (parent->con, "E", "_wallpaper_web_dialog");
|
||||
if (!dia)
|
||||
{
|
||||
|
@ -89,6 +95,8 @@ e_int_config_wallpaper_web (E_Config_Dialog *parent)
|
|||
cfdata = E_NEW (E_Config_Dialog_Data, 1);
|
||||
|
||||
ecore_con_url_init ();
|
||||
ecore_file_download_init ();
|
||||
|
||||
cfdata->ecu = ecore_con_url_new ("http://fake.url");
|
||||
|
||||
cfdata->ready_for_edj = 0;
|
||||
|
@ -206,6 +214,7 @@ e_int_config_wallpaper_web_del (E_Dialog *dia)
|
|||
{
|
||||
ecore_event_handler_del (cfdata->hcomplete);
|
||||
}
|
||||
ecore_file_download_shutdown();
|
||||
ecore_con_url_shutdown ();
|
||||
|
||||
if (cfdata->tmpdir)
|
||||
|
@ -233,8 +242,13 @@ _feed_complete (void *data, int type, void *event)
|
|||
|
||||
euc = (Ecore_Con_Event_Url_Complete *)event;
|
||||
import = data;
|
||||
if (import->magic != MAGIC_IMPORT) return 1;
|
||||
|
||||
cfdata = import->cfdata;
|
||||
if (cfdata->ecu != euc->url_con) return 1;
|
||||
|
||||
fclose (cfdata->feed);
|
||||
cfdata->feed = NULL;
|
||||
ecore_event_handler_del (cfdata->hdata);
|
||||
ecore_event_handler_del (cfdata->hcomplete);
|
||||
cfdata->hdata = NULL;
|
||||
|
@ -262,7 +276,12 @@ _feed_data (void *data, int type, void *event)
|
|||
|
||||
eud = (Ecore_Con_Event_Url_Data *)event;
|
||||
import = data;
|
||||
if (import->magic != MAGIC_IMPORT) return 1;
|
||||
|
||||
cfdata = import->cfdata;
|
||||
|
||||
if (cfdata->ecu != eud->url_con) return 1;
|
||||
|
||||
fwrite (eud->data, sizeof(unsigned char), eud->size, cfdata->feed);
|
||||
return 0;
|
||||
}
|
||||
|
@ -597,6 +616,10 @@ _get_feed (char *url, void *data)
|
|||
cfdata->tmpdir = mkdtemp (strdup (tmpdir_tpl));
|
||||
|
||||
ecore_con_url_url_set (cfdata->ecu, url);
|
||||
ecore_file_download_abort_all ();
|
||||
if (cfdata->hdata) ecore_event_handler_del (cfdata->hdata);
|
||||
if (cfdata->hcomplete) ecore_event_handler_del (cfdata->hcomplete);
|
||||
if (cfdata->feed) fclose (cfdata->feed);
|
||||
|
||||
cfdata->hdata = ecore_event_handler_add (ECORE_CON_EVENT_URL_DATA,
|
||||
_feed_data,
|
||||
|
|
Loading…
Reference in New Issue