From: Enlightenment S. <no-...@en...> - 2010-10-22 17:07:57
|
Log: this is a rather large stress test of the improved version of uncrustify+config that I have been working on as far as I can tell, it's perfect for non-headers header example following as soon as I finish making it space EINA_XYZ() args properly Author: discomfitor Date: 2010-10-22 10:07:41 -0700 (Fri, 22 Oct 2010) New Revision: 53774 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-10-22 16:47:28 UTC (rev 53773) +++ trunk/e/src/bin/e_fm.c 2010-10-22 17:07:41 UTC (rev 53774) @@ -24,109 +24,118 @@ FILE_CHANGE } E_Fm2_Action_Type; -typedef struct _E_Fm2_Smart_Data E_Fm2_Smart_Data; -typedef struct _E_Fm2_Region E_Fm2_Region; -typedef struct _E_Fm2_Finfo E_Fm2_Finfo; -typedef struct _E_Fm2_Action E_Fm2_Action; -typedef struct _E_Fm2_Client E_Fm2_Client; -typedef struct _E_Fm2_Uri E_Fm2_Uri; -typedef struct _E_Fm2_Context_Menu_Data E_Fm2_Context_Menu_Data; +typedef struct _E_Fm2_Smart_Data E_Fm2_Smart_Data; +typedef struct _E_Fm2_Region E_Fm2_Region; +typedef struct _E_Fm2_Finfo E_Fm2_Finfo; +typedef struct _E_Fm2_Action E_Fm2_Action; +typedef struct _E_Fm2_Client E_Fm2_Client; +typedef struct _E_Fm2_Uri E_Fm2_Uri; +typedef struct _E_Fm2_Context_Menu_Data E_Fm2_Context_Menu_Data; struct _E_Fm2_Smart_Data { - int id; - Evas_Coord x, y, w, h, pw, ph; - Evas_Object *obj; - Evas_Object *clip; - Evas_Object *underlay; - Evas_Object *overlay; - Evas_Object *drop; - Evas_Object *drop_in; - Evas_Object *sel_rect; - const char *dev; - const char *path; - const char *realpath; + int id; + Evas_Coord x, y, w, h, pw, ph; + Evas_Object *obj; + Evas_Object *clip; + Evas_Object *underlay; + Evas_Object *overlay; + Evas_Object *drop; + Evas_Object *drop_in; + Evas_Object *sel_rect; + const char *dev; + const char *path; + const char *realpath; - struct { - Evas_Coord w, h; + struct + { + Evas_Coord w, h; } max, pmax; - struct { - Evas_Coord x, y; + struct + { + Evas_Coord x, y; } pos; - struct { - Eina_List *list; - int member_max; + struct + { + Eina_List *list; + int member_max; } regions; - struct { - struct { - E_Fm_Cb func; - void *data; + struct + { + struct + { + E_Fm_Cb func; + void *data; } start, end, replace; E_Fm2_Menu_Flags flags; } icon_menu; - Eina_List *icons; - Eina_List *icons_place; - Eina_List *queue; - Ecore_Timer *scan_timer; - Ecore_Idler *sort_idler; - Ecore_Job *scroll_job; - Ecore_Job *resize_job; - Ecore_Job *refresh_job; - E_Menu *menu; - E_Entry_Dialog *entry_dialog; - E_Dialog *image_dialog; - Eina_Bool iconlist_changed : 1; - Eina_Bool order_file : 1; - Eina_Bool typebuf_visible : 1; - Eina_Bool show_hidden_files : 1; - Eina_Bool listing : 1; - Eina_Bool inherited_dir_props : 1; - signed char view_mode; /* -1 = unset */ - signed short icon_size; /* -1 = unset */ - E_Fm2_View_Flags view_flags; + Eina_List *icons; + Eina_List *icons_place; + Eina_List *queue; + Ecore_Timer *scan_timer; + Ecore_Idler *sort_idler; + Ecore_Job *scroll_job; + Ecore_Job *resize_job; + Ecore_Job *refresh_job; + E_Menu *menu; + E_Entry_Dialog *entry_dialog; + E_Dialog *image_dialog; + Eina_Bool iconlist_changed : 1; + Eina_Bool order_file : 1; + Eina_Bool typebuf_visible : 1; + Eina_Bool show_hidden_files : 1; + Eina_Bool listing : 1; + Eina_Bool inherited_dir_props : 1; + signed char view_mode; /* -1 = unset */ + signed short icon_size; /* -1 = unset */ + E_Fm2_View_Flags view_flags; - E_Fm2_Config *config; - const char *custom_theme; - const char *custom_theme_content; + E_Fm2_Config *config; + const char *custom_theme; + const char *custom_theme_content; - struct { - Evas_Object *obj, *obj2; - Eina_List *last_insert; - Eina_List **list_index; - int iter; + struct + { + Evas_Object *obj, *obj2; + Eina_List *last_insert; + Eina_List **list_index; + int iter; } tmp; - struct { - Eina_List *actions; - Ecore_Idler *idler; - Ecore_Timer *timer; + struct + { + Eina_List *actions; + Ecore_Idler *idler; + Ecore_Timer *timer; Eina_Bool deletions : 1; } live; - struct { - char *buf; - Ecore_Timer *timer; + struct + { + char *buf; + Ecore_Timer *timer; } typebuf; - int busy_count; + int busy_count; - E_Object *eobj; - E_Drop_Handler *drop_handler; - E_Fm2_Icon *drop_icon; - E_Fm2_Mount *mount; - signed char drop_after; + E_Object *eobj; + E_Drop_Handler *drop_handler; + E_Fm2_Icon *drop_icon; + E_Fm2_Mount *mount; + signed char drop_after; Eina_Bool drop_show : 1; Eina_Bool drop_in_show : 1; Eina_Bool drop_all : 1; Eina_Bool drag : 1; Eina_Bool selecting : 1; - struct { + struct + { int ox, oy; int x, y, w, h; } selrect; - E_Fm2_Icon *iop_icon; + E_Fm2_Icon *iop_icon; }; struct _E_Fm2_Region @@ -134,7 +143,7 @@ E_Fm2_Smart_Data *sd; Evas_Coord x, y, w, h; Eina_List *list; - Eina_Bool realized : 1; + Eina_Bool realized : 1; }; struct _E_Fm2_Icon @@ -153,43 +162,44 @@ E_Fm2_Icon_Info info; - struct { - Evas_Coord x, y; + struct + { + Evas_Coord x, y; Eina_Bool start : 1; Eina_Bool dnd : 1; Eina_Bool src : 1; } drag; - Eina_Bool realized : 1; - Eina_Bool selected : 1; - Eina_Bool last_selected : 1; - Eina_Bool saved_pos : 1; - Eina_Bool odd : 1; - Eina_Bool down_sel : 1; - Eina_Bool removable_state_change : 1; + Eina_Bool realized : 1; + Eina_Bool selected : 1; + Eina_Bool last_selected : 1; + Eina_Bool saved_pos : 1; + Eina_Bool odd : 1; + Eina_Bool down_sel : 1; + Eina_Bool removable_state_change : 1; }; struct _E_Fm2_Finfo { struct stat st; - int broken_link; + int broken_link; const char *lnk; const char *rlnk; }; struct _E_Fm2_Action { - E_Fm2_Action_Type type; - const char *file; - const char *file2; - int flags; - E_Fm2_Finfo finf; + E_Fm2_Action_Type type; + const char *file; + const char *file2; + int flags; + E_Fm2_Finfo finf; }; struct _E_Fm2_Client { Ecore_Ipc_Client *cl; - int req; + int req; }; struct _E_Fm2_Uri @@ -200,224 +210,224 @@ struct _E_Fm2_Context_Menu_Data { - E_Fm2_Icon *icon; + E_Fm2_Icon *icon; E_Fm2_Mime_Handler *handler; }; -static const char *_e_fm2_dev_path_map(const char *dev, const char *path); -static void _e_fm2_file_add(Evas_Object *obj, const char *file, int unique, const char *file_rel, int after, E_Fm2_Finfo *finf); -static void _e_fm2_file_del(Evas_Object *obj, const char *file); -static void _e_fm2_queue_process(Evas_Object *obj); -static void _e_fm2_queue_free(Evas_Object *obj); -static void _e_fm2_regions_free(Evas_Object *obj); -static void _e_fm2_regions_populate(Evas_Object *obj); -static void _e_fm2_icons_place(Evas_Object *obj); -static void _e_fm2_icons_free(Evas_Object *obj); -static void _e_fm2_regions_eval(Evas_Object *obj); -static void _e_fm2_config_free(E_Fm2_Config *cfg); +static const char * _e_fm2_dev_path_map(const char *dev, const char *path); +static void _e_fm2_file_add(Evas_Object *obj, const char *file, int unique, const char *file_rel, int after, E_Fm2_Finfo *finf); +static void _e_fm2_file_del(Evas_Object *obj, const char *file); +static void _e_fm2_queue_process(Evas_Object *obj); +static void _e_fm2_queue_free(Evas_Object *obj); +static void _e_fm2_regions_free(Evas_Object *obj); +static void _e_fm2_regions_populate(Evas_Object *obj); +static void _e_fm2_icons_place(Evas_Object *obj); +static void _e_fm2_icons_free(Evas_Object *obj); +static void _e_fm2_regions_eval(Evas_Object *obj); +static void _e_fm2_config_free(E_Fm2_Config *cfg); -static void _e_fm2_dir_load_props(E_Fm2_Smart_Data *sd); -static void _e_fm2_dir_save_props(E_Fm2_Smart_Data *sd); +static void _e_fm2_dir_load_props(E_Fm2_Smart_Data *sd); +static void _e_fm2_dir_save_props(E_Fm2_Smart_Data *sd); -static Evas_Object *_e_fm2_file_fm2_find(const char *file); -static E_Fm2_Icon *_e_fm2_icon_find(Evas_Object *obj, const char *file); -static const char *_e_fm2_uri_escape(const char *path); -static Eina_List *_e_fm2_uri_path_list_get(Eina_List *uri_list); -static Eina_List *_e_fm2_uri_icon_list_get(Eina_List *uri); +static Evas_Object * _e_fm2_file_fm2_find(const char *file); +static E_Fm2_Icon * _e_fm2_icon_find(Evas_Object *obj, const char *file); +static const char * _e_fm2_uri_escape(const char *path); +static Eina_List * _e_fm2_uri_path_list_get(Eina_List *uri_list); +static Eina_List * _e_fm2_uri_icon_list_get(Eina_List *uri); -static E_Fm2_Icon *_e_fm2_icon_new(E_Fm2_Smart_Data *sd, const char *file, E_Fm2_Finfo *finf); -static void _e_fm2_icon_unfill(E_Fm2_Icon *ic); -static int _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf); -static void _e_fm2_icon_free(E_Fm2_Icon *ic); -static void _e_fm2_icon_realize(E_Fm2_Icon *ic); -static void _e_fm2_icon_unrealize(E_Fm2_Icon *ic); -static Eina_Bool _e_fm2_icon_visible(const E_Fm2_Icon *ic); -static void _e_fm2_icon_label_set(E_Fm2_Icon *ic, Evas_Object *obj); -static Evas_Object *_e_fm2_icon_icon_direct_set(E_Fm2_Icon *ic, Evas_Object *o, Evas_Smart_Cb gen_func, void *data, int force_gen); -static void _e_fm2_icon_icon_set(E_Fm2_Icon *ic); -static void _e_fm2_icon_thumb(const E_Fm2_Icon *ic, Evas_Object *oic, int force); -static void _e_fm2_icon_select(E_Fm2_Icon *ic); -static void _e_fm2_icon_deselect(E_Fm2_Icon *ic); -static int _e_fm2_icon_desktop_load(E_Fm2_Icon *ic); +static E_Fm2_Icon * _e_fm2_icon_new(E_Fm2_Smart_Data *sd, const char *file, E_Fm2_Finfo *finf); +static void _e_fm2_icon_unfill(E_Fm2_Icon *ic); +static int _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf); +static void _e_fm2_icon_free(E_Fm2_Icon *ic); +static void _e_fm2_icon_realize(E_Fm2_Icon *ic); +static void _e_fm2_icon_unrealize(E_Fm2_Icon *ic); +static Eina_Bool _e_fm2_icon_visible(const E_Fm2_Icon *ic); +static void _e_fm2_icon_label_set(E_Fm2_Icon *ic, Evas_Object *obj); +static Evas_Object * _e_fm2_icon_icon_direct_set(E_Fm2_Icon *ic, Evas_Object *o, Evas_Smart_Cb gen_func, void *data, int force_gen); +static void _e_fm2_icon_icon_set(E_Fm2_Icon *ic); +static void _e_fm2_icon_thumb(const E_Fm2_Icon *ic, Evas_Object *oic, int force); +static void _e_fm2_icon_select(E_Fm2_Icon *ic); +static void _e_fm2_icon_deselect(E_Fm2_Icon *ic); +static int _e_fm2_icon_desktop_load(E_Fm2_Icon *ic); static E_Fm2_Region *_e_fm2_region_new(E_Fm2_Smart_Data *sd); -static void _e_fm2_region_free(E_Fm2_Region *rg); -static void _e_fm2_region_realize(E_Fm2_Region *rg); -static void _e_fm2_region_unrealize(E_Fm2_Region *rg); -static int _e_fm2_region_visible(E_Fm2_Region *rg); +static void _e_fm2_region_free(E_Fm2_Region *rg); +static void _e_fm2_region_realize(E_Fm2_Region *rg); +static void _e_fm2_region_unrealize(E_Fm2_Region *rg); +static int _e_fm2_region_visible(E_Fm2_Region *rg); -static void _e_fm2_icon_make_visible(E_Fm2_Icon *ic); -static void _e_fm2_icon_desel_any(Evas_Object *obj); -static E_Fm2_Icon *_e_fm2_icon_first_selected_find(Evas_Object *obj); -static E_Fm2_Icon *_e_fm2_icon_next_find(Evas_Object *obj, int next, int match_func(E_Fm2_Icon *ic, void *data), void *data); +static void _e_fm2_icon_make_visible(E_Fm2_Icon *ic); +static void _e_fm2_icon_desel_any(Evas_Object *obj); +static E_Fm2_Icon * _e_fm2_icon_first_selected_find(Evas_Object *obj); +static E_Fm2_Icon * _e_fm2_icon_next_find(Evas_Object *obj, int next, intmatch_func(E_Fm2_Icon * ic, void *data), void *data); -static void _e_fm2_icon_sel_first(Evas_Object *obj); -static void _e_fm2_icon_sel_last(Evas_Object *obj); -static void _e_fm2_icon_sel_any(Evas_Object *obj); -static void _e_fm2_icon_sel_prev(Evas_Object *obj); -static void _e_fm2_icon_sel_next(Evas_Object *obj); -static void _e_fm2_icon_sel_down(Evas_Object *obj); -static void _e_fm2_icon_sel_up(Evas_Object *obj); +static void _e_fm2_icon_sel_first(Evas_Object *obj); +static void _e_fm2_icon_sel_last(Evas_Object *obj); +static void _e_fm2_icon_sel_any(Evas_Object *obj); +static void _e_fm2_icon_sel_prev(Evas_Object *obj); +static void _e_fm2_icon_sel_next(Evas_Object *obj); +static void _e_fm2_icon_sel_down(Evas_Object *obj); +static void _e_fm2_icon_sel_up(Evas_Object *obj); -static void _e_fm2_typebuf_show(Evas_Object *obj); -static void _e_fm2_typebuf_hide(Evas_Object *obj); +static void _e_fm2_typebuf_show(Evas_Object *obj); +static void _e_fm2_typebuf_hide(Evas_Object *obj); //static void _e_fm2_typebuf_history_prev(Evas_Object *obj); //static void _e_fm2_typebuf_history_next(Evas_Object *obj); -static void _e_fm2_typebuf_run(Evas_Object *obj); -static void _e_fm2_typebuf_match(Evas_Object *obj, int next); -static void _e_fm2_typebuf_complete(Evas_Object *obj); -static void _e_fm2_typebuf_char_append(Evas_Object *obj, const char *ch); -static void _e_fm2_typebuf_char_backspace(Evas_Object *obj); +static void _e_fm2_typebuf_run(Evas_Object *obj); +static void _e_fm2_typebuf_match(Evas_Object *obj, int next); +static void _e_fm2_typebuf_complete(Evas_Object *obj); +static void _e_fm2_typebuf_char_append(Evas_Object *obj, const char *ch); +static void _e_fm2_typebuf_char_backspace(Evas_Object *obj); -static void _e_fm2_cb_dnd_enter(void *data, const char *type, void *event); -static void _e_fm2_cb_dnd_move(void *data, const char *type, void *event); -static void _e_fm2_cb_dnd_leave(void *data, const char *type, void *event); -static void _e_fm2_cb_dnd_drop(void *data, const char *type, void *event); -static void _e_fm2_cb_icon_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_icon_thumb_dnd_gen(void *data, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_icon_thumb_gen(void *data, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_cb_scroll_job(void *data); -static void _e_fm2_cb_resize_job(void *data); -static int _e_fm2_cb_icon_sort(const void *data1, const void *data2); -static Eina_Bool _e_fm2_cb_scan_timer(void *data); -static Eina_Bool _e_fm2_cb_sort_idler(void *data); +static void _e_fm2_cb_dnd_enter(void *data, const char *type, void *event); +static void _e_fm2_cb_dnd_move(void *data, const char *type, void *event); +static void _e_fm2_cb_dnd_leave(void *data, const char *type, void *event); +static void _e_fm2_cb_dnd_drop(void *data, const char *type, void *event); +static void _e_fm2_cb_icon_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_icon_thumb_dnd_gen(void *data, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_icon_thumb_gen(void *data, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_cb_scroll_job(void *data); +static void _e_fm2_cb_resize_job(void *data); +static int _e_fm2_cb_icon_sort(const void *data1, const void *data2); +static Eina_Bool _e_fm2_cb_scan_timer(void *data); +static Eina_Bool _e_fm2_cb_sort_idler(void *data); -static void _e_fm2_obj_icons_place(E_Fm2_Smart_Data *sd); +static void _e_fm2_obj_icons_place(E_Fm2_Smart_Data *sd); -static void _e_fm2_smart_add(Evas_Object *object); -static void _e_fm2_smart_del(Evas_Object *object); -static void _e_fm2_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y); -static void _e_fm2_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h); -static void _e_fm2_smart_show(Evas_Object *object); -static void _e_fm2_smart_hide(Evas_Object *object); -static void _e_fm2_smart_color_set(Evas_Object *obj, int r, int g, int b, int a); -static void _e_fm2_smart_clip_set(Evas_Object *obj, Evas_Object * clip); -static void _e_fm2_smart_clip_unset(Evas_Object *obj); +static void _e_fm2_smart_add(Evas_Object *object); +static void _e_fm2_smart_del(Evas_Object *object); +static void _e_fm2_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y); +static void _e_fm2_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h); +static void _e_fm2_smart_show(Evas_Object *object); +static void _e_fm2_smart_hide(Evas_Object *object); +static void _e_fm2_smart_color_set(Evas_Object *obj, int r, int g, int b, int a); +static void _e_fm2_smart_clip_set(Evas_Object *obj, Evas_Object *clip); +static void _e_fm2_smart_clip_unset(Evas_Object *obj); -static void _e_fm2_menu(Evas_Object *obj, unsigned int timestamp); -static void _e_fm2_menu_post_cb(void *data, E_Menu *m); -static void _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp); -static void _e_fm2_icon_menu_post_cb(void *data, E_Menu *m); -static void _e_fm2_icon_menu_item_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_icon_view_menu_pre(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_toggle_inherit_dir_props(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_pre(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_grid_icons_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_custom_icons_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_list_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_use_default_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_set_background_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_menu_set_overlay_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_view_image_sel(E_Fm2_Smart_Data *sd, const char *title, void (*ok_cb) (void *data, E_Dialog *dia), void (*clear_cb) (void *data, E_Dialog *dia)); -static void _e_fm2_view_image_sel_close(void *data, E_Dialog *dia); -static void _e_fm2_refresh(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_toggle_hidden_files(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_toggle_ordering(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_sort(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_new_directory(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_new_directory_delete_cb(void *obj); -static void _e_fm2_new_directory_yes_cb(char *text, void *data); -static void _e_fm2_new_directory_no_cb(void *data); -static void _e_fm2_file_rename(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_rename_delete_cb(void *obj); -static void _e_fm2_file_rename_yes_cb(char *text, void *data); -static void _e_fm2_file_rename_no_cb(void *data); -static void _e_fm2_file_application_properties(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__); -static void _e_fm2_file_properties(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_properties_delete_cb(void *obj); -static void _e_fm2_file_do_rename(const char *text, E_Fm2_Icon *ic); +static void _e_fm2_menu(Evas_Object *obj, unsigned int timestamp); +static void _e_fm2_menu_post_cb(void *data, E_Menu *m); +static void _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp); +static void _e_fm2_icon_menu_post_cb(void *data, E_Menu *m); +static void _e_fm2_icon_menu_item_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_icon_view_menu_pre(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_toggle_inherit_dir_props(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_pre(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_grid_icons_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_custom_icons_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_list_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_use_default_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_set_background_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_menu_set_overlay_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_view_image_sel(E_Fm2_Smart_Data *sd, const char *title, void (*ok_cb)(void *data, E_Dialog *dia), void (*clear_cb)(void *data, E_Dialog *dia)); +static void _e_fm2_view_image_sel_close(void *data, E_Dialog *dia); +static void _e_fm2_refresh(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_toggle_hidden_files(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_toggle_ordering(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_sort(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_new_directory(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_new_directory_delete_cb(void *obj); +static void _e_fm2_new_directory_yes_cb(char *text, void *data); +static void _e_fm2_new_directory_no_cb(void *data); +static void _e_fm2_file_rename(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_rename_delete_cb(void *obj); +static void _e_fm2_file_rename_yes_cb(char *text, void *data); +static void _e_fm2_file_rename_no_cb(void *data); +static void _e_fm2_file_application_properties(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__); +static void _e_fm2_file_properties(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_properties_delete_cb(void *obj); +static void _e_fm2_file_do_rename(const char *text, E_Fm2_Icon *ic); -static Evas_Object* _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic); -static void _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic); -static void _e_fm2_icon_entry_widget_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_fm2_icon_entry_widget_accept(E_Fm2_Icon *ic); +static Evas_Object * _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic); +static void _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic); +static void _e_fm2_icon_entry_widget_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_fm2_icon_entry_widget_accept(E_Fm2_Icon *ic); -static E_Dialog* _e_fm_retry_abort_dialog(int pid, const char *str); -static void _e_fm_retry_abort_delete_cb(void *obj); -static void _e_fm_retry_abort_retry_cb(void *data, E_Dialog *dialog); -static void _e_fm_retry_abort_abort_cb(void *data, E_Dialog *dialog); +static E_Dialog * _e_fm_retry_abort_dialog(int pid, const char *str); +static void _e_fm_retry_abort_delete_cb(void *obj); +static void _e_fm_retry_abort_retry_cb(void *data, E_Dialog *dialog); +static void _e_fm_retry_abort_abort_cb(void *data, E_Dialog *dialog); -static E_Dialog* _e_fm_overwrite_dialog(int pid, const char *str); -static void _e_fm_overwrite_delete_cb(void *obj); -static void _e_fm_overwrite_no_cb(void *data, E_Dialog *dialog); -static void _e_fm_overwrite_no_all_cb(void *data, E_Dialog *dialog); -static void _e_fm_overwrite_yes_cb(void *data, E_Dialog *dialog); -static void _e_fm_overwrite_yes_all_cb(void *data, E_Dialog *dialog); +static E_Dialog * _e_fm_overwrite_dialog(int pid, const char *str); +static void _e_fm_overwrite_delete_cb(void *obj); +static void _e_fm_overwrite_no_cb(void *data, E_Dialog *dialog); +static void _e_fm_overwrite_no_all_cb(void *data, E_Dialog *dialog); +static void _e_fm_overwrite_yes_cb(void *data, E_Dialog *dialog); +static void _e_fm_overwrite_yes_all_cb(void *data, E_Dialog *dialog); -static E_Dialog* _e_fm_error_dialog(int pid, const char *str); -static void _e_fm_error_delete_cb(void *obj); -static void _e_fm_error_retry_cb(void *data, E_Dialog *dialog); -static void _e_fm_error_abort_cb(void *data, E_Dialog *dialog); -static void _e_fm_error_ignore_this_cb(void *data, E_Dialog *dialog); -static void _e_fm_error_ignore_all_cb(void *data, E_Dialog *dialog); +static E_Dialog * _e_fm_error_dialog(int pid, const char *str); +static void _e_fm_error_delete_cb(void *obj); +static void _e_fm_error_retry_cb(void *data, E_Dialog *dialog); +static void _e_fm_error_abort_cb(void *data, E_Dialog *dialog); +static void _e_fm_error_ignore_this_cb(void *data, E_Dialog *dialog); +static void _e_fm_error_ignore_all_cb(void *data, E_Dialog *dialog); -static void _e_fm_device_error_dialog(const char *title, const char *msg, const char *pstr); +static void _e_fm_device_error_dialog(const char *title, const char *msg, const char *pstr); -static void _e_fm2_file_delete(Evas_Object *obj); -static void _e_fm2_file_delete_menu(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_delete_delete_cb(void *obj); -static void _e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog); -static void _e_fm2_file_delete_no_cb(void *data, E_Dialog *dialog); -static void _e_fm2_refresh_job_cb(void *data); -static void _e_fm_file_buffer_clear(void); -static void _e_fm2_file_cut(Evas_Object *obj); -static void _e_fm2_file_copy(Evas_Object *obj); -static void _e_fm2_file_paste(Evas_Object *obj); -static void _e_fm2_file_symlink(Evas_Object *obj); -static void _e_fm2_file_cut_menu(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_copy_menu(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_paste_menu(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_file_symlink_menu(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_delete(Evas_Object *obj); +static void _e_fm2_file_delete_menu(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_delete_delete_cb(void *obj); +static void _e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog); +static void _e_fm2_file_delete_no_cb(void *data, E_Dialog *dialog); +static void _e_fm2_refresh_job_cb(void *data); +static void _e_fm_file_buffer_clear(void); +static void _e_fm2_file_cut(Evas_Object *obj); +static void _e_fm2_file_copy(Evas_Object *obj); +static void _e_fm2_file_paste(Evas_Object *obj); +static void _e_fm2_file_symlink(Evas_Object *obj); +static void _e_fm2_file_cut_menu(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_copy_menu(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_paste_menu(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_file_symlink_menu(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_live_file_add(Evas_Object *obj, const char *file, const char *file_rel, int after, E_Fm2_Finfo *finf); -static void _e_fm2_live_file_del(Evas_Object *obj, const char *file); -static void _e_fm2_live_file_changed(Evas_Object *obj, const char *file, E_Fm2_Finfo *finf); -static void _e_fm2_live_process_begin(Evas_Object *obj); -static void _e_fm2_live_process_end(Evas_Object *obj); -static void _e_fm2_live_process(Evas_Object *obj); -static Eina_Bool _e_fm2_cb_live_idler(void *data); -static Eina_Bool _e_fm2_cb_live_timer(void *data); +static void _e_fm2_live_file_add(Evas_Object *obj, const char *file, const char *file_rel, int after, E_Fm2_Finfo *finf); +static void _e_fm2_live_file_del(Evas_Object *obj, const char *file); +static void _e_fm2_live_file_changed(Evas_Object *obj, const char *file, E_Fm2_Finfo *finf); +static void _e_fm2_live_process_begin(Evas_Object *obj); +static void _e_fm2_live_process_end(Evas_Object *obj); +static void _e_fm2_live_process(Evas_Object *obj); +static Eina_Bool _e_fm2_cb_live_idler(void *data); +static Eina_Bool _e_fm2_cb_live_timer(void *data); -static int _e_fm2_theme_edje_object_set(E_Fm2_Smart_Data *sd, Evas_Object *o, const char *category, const char *group); -static int _e_fm2_theme_edje_icon_object_set(E_Fm2_Smart_Data *sd, Evas_Object *o, const char *category, const char *group); +static int _e_fm2_theme_edje_object_set(E_Fm2_Smart_Data *sd, Evas_Object *o, const char *category, const char *group); +static int _e_fm2_theme_edje_icon_object_set(E_Fm2_Smart_Data *sd, Evas_Object *o, const char *category, const char *group); -static void _e_fm2_mouse_1_handler(E_Fm2_Icon *ic, int up, void *evas_event); +static void _e_fm2_mouse_1_handler(E_Fm2_Icon *ic, int up, void *evas_event); -static void _e_fm2_client_spawn(void); +static void _e_fm2_client_spawn(void); static E_Fm2_Client *_e_fm2_client_get(void); -static int _e_fm2_client_monitor_add(const char *path); -static void _e_fm2_client_monitor_del(int id, const char *path); -static int _e_fm_client_file_del(const char *args, Evas_Object *e_fm); +static int _e_fm2_client_monitor_add(const char *path); +static void _e_fm2_client_monitor_del(int id, const char *path); +static int _e_fm_client_file_del(const char *args, Evas_Object *e_fm); //static int _e_fm2_client_file_trash(const char *path, Evas_Object *e_fm); -static int _e_fm2_client_file_mkdir(const char *path, const char *rel, int rel_to, int x, int y, int res_w, int res_h, Evas_Object *e_fm); -static int _e_fm_client_file_move(const char *args, Evas_Object *e_fm); -static int _e_fm2_client_file_symlink(const char *path, const char *dest, const char *rel, int rel_to, int x, int y, int res_w, int res_h, Evas_Object *e_fm); -static int _e_fm_client_file_copy(const char *args, Evas_Object *e_fm); -static int _e_fm_client_file_symlink(const char *args, Evas_Object *e_fm); +static int _e_fm2_client_file_mkdir(const char *path, const char *rel, int rel_to, int x, int y, int res_w, int res_h, Evas_Object *e_fm); +static int _e_fm_client_file_move(const char *args, Evas_Object *e_fm); +static int _e_fm2_client_file_symlink(const char *path, const char *dest, const char *rel, int rel_to, int x, int y, int res_w, int res_h, Evas_Object *e_fm); +static int _e_fm_client_file_copy(const char *args, Evas_Object *e_fm); +static int _e_fm_client_file_symlink(const char *args, Evas_Object *e_fm); -static void _e_fm2_sel_rect_update(void *data); -static inline void _e_fm2_context_menu_append(Evas_Object *obj, const char *path, Eina_List *l, E_Menu *mn, E_Fm2_Icon *ic); -static int _e_fm2_context_list_sort(const void *data1, const void *data2); +static void _e_fm2_sel_rect_update(void *data); +static inline void _e_fm2_context_menu_append(Evas_Object *obj, const char *path, Eina_List *l, E_Menu *mn, E_Fm2_Icon *ic); +static int _e_fm2_context_list_sort(const void *data1, const void *data2); -static char *_e_fm_string_append_char(char *str, size_t *size, size_t *len, char c); -static char *_e_fm_string_append_quoted(char *str, size_t *size, size_t *len, const char *src); +static char * _e_fm_string_append_char(char *str, size_t *size, size_t *len, char c); +static char * _e_fm_string_append_quoted(char *str, size_t *size, size_t *len, const char *src); -void _e_fm2_path_parent_set(Evas_Object *obj, const char *path); +void _e_fm2_path_parent_set(Evas_Object *obj, const char *path); -static void _e_fm2_volume_mount(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_volume_unmount(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_volume_eject(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_volume_mount(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_volume_unmount(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_fm2_volume_eject(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_fm2_icon_removable_update(E_Fm2_Icon *ic); -static void _e_fm2_volume_icon_update(E_Volume *v); +static void _e_fm2_icon_removable_update(E_Fm2_Icon *ic); +static void _e_fm2_volume_icon_update(E_Volume *v); -static void _e_fm2_operation_abort_internal(E_Fm2_Op_Registry_Entry *ere); +static void _e_fm2_operation_abort_internal(E_Fm2_Op_Registry_Entry *ere); static char *_e_fm2_meta_path = NULL; static Evas_Smart *_e_fm2_smart = NULL; @@ -487,11 +497,11 @@ #if E_FM2_SIMPLE_STRCASE_FILES if ((ext[0] == 'd') && ((strcmp(ext + 1, "esktop") == 0) || - (strcmp(ext + 1, "irectory") == 0))) + (strcmp(ext + 1, "irectory") == 0))) return 1; else if ((ext[0] == 'D') && - ((strcmp(ext + 1, "ESKTOP") == 0) || - (strcmp(ext + 1, "IRECTORY") == 0))) + ((strcmp(ext + 1, "ESKTOP") == 0) || + (strcmp(ext + 1, "IRECTORY") == 0))) return 1; else return 0; @@ -501,7 +511,7 @@ ext++; return ((strcasecmp(ext, "esktop") == 0) || - (strcasecmp(ext, "irectory") == 0)); + (strcasecmp(ext, "irectory") == 0)); #endif } @@ -625,26 +635,26 @@ static void _e_fm2_op_registry_entry_print(const E_Fm2_Op_Registry_Entry *ere) { - const char *status_strings[] = - { - "UNKNOWN", "IN_PROGRESS", "SUCCESSFUL", "ABORTED", "ERROR" - }; + const char *status_strings[] = + { + "UNKNOWN", "IN_PROGRESS", "SUCCESSFUL", "ABORTED", "ERROR" + }; const char *status; if ((ere->status >= 0) && - (ere->status < sizeof(status_strings)/sizeof(status_strings[0]))) + (ere->status < sizeof(status_strings) / sizeof(status_strings[0]))) status = status_strings[ere->status]; else status = status_strings[0]; printf("id: %8d, op: %2d [%s] finished: %hhu, needs_attention: %hhu\n" - " %3d%% (%"PRIi64"/%"PRIi64"), start_time: %10.0f, eta: %5ds, xwin: %#x\n" - " src=[%s]\n" - " dst=[%s]\n", - ere->id, ere->op, status, ere->finished, ere->needs_attention, - ere->percent, ere->done, ere->total, ere->start_time, ere->eta, - e_fm2_op_registry_entry_xwin_get(ere), - ere->src, ere->dst); + " %3d%% (%" PRIi64 "/%" PRIi64 "), start_time: %10.0f, eta: %5ds, xwin: %#x\n" + " src=[%s]\n" + " dst=[%s]\n", + ere->id, ere->op, status, ere->finished, ere->needs_attention, + ere->percent, ere->done, ere->total, ere->start_time, ere->eta, + e_fm2_op_registry_entry_xwin_get(ere), + ere->src, ere->dst); } static Eina_Bool @@ -685,7 +695,7 @@ EAPI int e_fm2_init(void) { - char path[PATH_MAX]; + char path[PATH_MAX]; eina_init(); ecore_init(); @@ -694,30 +704,30 @@ ecore_file_mkpath(path); _e_fm2_meta_path = strdup(path); - { - static const Evas_Smart_Class sc = - { - "e_fm", - EVAS_SMART_CLASS_VERSION, - _e_fm2_smart_add, /* add */ - _e_fm2_smart_del, /* del */ - _e_fm2_smart_move, /* move */ - _e_fm2_smart_resize, /* resize */ - _e_fm2_smart_show,/* show */ - _e_fm2_smart_hide,/* hide */ - _e_fm2_smart_color_set, /* color_set */ - _e_fm2_smart_clip_set, /* clip_set */ - _e_fm2_smart_clip_unset, /* clip_unset */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }; - _e_fm2_smart = evas_smart_class_new(&sc); - } + { + static const Evas_Smart_Class sc = + { + "e_fm", + EVAS_SMART_CLASS_VERSION, + _e_fm2_smart_add, /* add */ + _e_fm2_smart_del, /* del */ + _e_fm2_smart_move, /* move */ + _e_fm2_smart_resize, /* resize */ + _e_fm2_smart_show, /* show */ + _e_fm2_smart_hide, /* hide */ + _e_fm2_smart_color_set, /* color_set */ + _e_fm2_smart_clip_set, /* clip_set */ + _e_fm2_smart_clip_unset, /* clip_unset */ + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }; + _e_fm2_smart = evas_smart_class_new(&sc); + } // _e_fm2_client_spawn(); e_fm2_custom_file_init(); e_fm2_op_registry_init(); @@ -738,15 +748,15 @@ if (!_e_fm2_op_registry_entry_add_handler) _e_fm2_op_registry_entry_add_handler = ecore_event_handler_add(E_EVENT_FM_OP_REGISTRY_ADD, - _e_fm2_op_registry_entry_add_cb, NULL); + _e_fm2_op_registry_entry_add_cb, NULL); if (!_e_fm2_op_registry_entry_del_handler) _e_fm2_op_registry_entry_del_handler = ecore_event_handler_add(E_EVENT_FM_OP_REGISTRY_DEL, - _e_fm2_op_registry_entry_del_cb, NULL); + _e_fm2_op_registry_entry_del_cb, NULL); if (!_e_fm2_op_registry_entry_changed_handler) _e_fm2_op_registry_entry_changed_handler = ecore_event_handler_add(E_EVENT_FM_OP_REGISTRY_CHANGED, - _e_fm2_op_registry_entry_changed_cb, NULL); + _e_fm2_op_registry_entry_changed_cb, NULL); /// DBG return 1; @@ -765,18 +775,18 @@ /// DBG if (_e_fm2_op_registry_entry_add_handler) { - ecore_event_handler_del(_e_fm2_op_registry_entry_add_handler); - _e_fm2_op_registry_entry_add_handler = NULL; + ecore_event_handler_del(_e_fm2_op_registry_entry_add_handler); + _e_fm2_op_registry_entry_add_handler = NULL; } if (_e_fm2_op_registry_entry_del_handler) { - ecore_event_handler_del(_e_fm2_op_registry_entry_del_handler); - _e_fm2_op_registry_entry_del_handler = NULL; + ecore_event_handler_del(_e_fm2_op_registry_entry_del_handler); + _e_fm2_op_registry_entry_del_handler = NULL; } if (_e_fm2_op_registry_entry_changed_handler) { - ecore_event_handler_del(_e_fm2_op_registry_entry_changed_handler); - _e_fm2_op_registry_entry_changed_handler = NULL; + ecore_event_handler_del(_e_fm2_op_registry_entry_changed_handler); + _e_fm2_op_registry_entry_changed_handler = NULL; } /// DBG @@ -809,18 +819,18 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(data); - if (!sd) return; // safety + if (!sd) return; // safety if (strcmp(sd->mount->mount_point, sd->realpath)) { - e_fm2_path_set(sd->obj, "/", sd->mount->mount_point); + e_fm2_path_set(sd->obj, "/", sd->mount->mount_point); } else { - sd->id = _e_fm2_client_monitor_add(sd->mount->mount_point); - sd->listing = EINA_TRUE; - evas_object_smart_callback_call(data, "dir_changed", NULL); - sd->tmp.iter = EINA_FALSE; + sd->id = _e_fm2_client_monitor_add(sd->mount->mount_point); + sd->listing = EINA_TRUE; + evas_object_smart_callback_call(data, "dir_changed", NULL); + sd->tmp.iter = EINA_FALSE; } } @@ -830,15 +840,15 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(data); - if (!sd) return; // safety + if (!sd) return; // safety if (sd->mount) { // At this moment E_Fm2_Mount object already deleted in e_fm_device.c - sd->mount = NULL; - if (sd->config->view.open_dirs_in_place) - e_fm2_path_set(data, "favorites", "/"); - else - evas_object_smart_callback_call(data, "dir_deleted", NULL); + sd->mount = NULL; + if (sd->config->view.open_dirs_in_place) + e_fm2_path_set(data, "favorites", "/"); + else + evas_object_smart_callback_call(data, "dir_deleted", NULL); } } @@ -853,9 +863,9 @@ { sd->mount = NULL; if (sd->config->view.open_dirs_in_place) - _e_fm2_path_parent_set(data, sd->realpath); + _e_fm2_path_parent_set(data, sd->realpath); else - evas_object_smart_callback_call(data, "dir_deleted", NULL); + evas_object_smart_callback_call(data, "dir_deleted", NULL); } } @@ -867,7 +877,7 @@ p = strrchr(path, '/'); if (!p || (p == path)) - e_fm2_path_set(obj, "/", "/"); + e_fm2_path_set(obj, "/", "/"); else { idx = p - path; @@ -889,40 +899,40 @@ const char *realpath; sd = evas_object_smart_data_get(obj); - if (!sd || !path) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd || !path) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety /* internal config for now - don't see a pont making this configurable */ sd->regions.member_max = 64; if (!sd->config) { - sd->config = E_NEW(E_Fm2_Config, 1); - if (!sd->config) return; + sd->config = E_NEW(E_Fm2_Config, 1); + if (!sd->config) return; // sd->config->view.mode = E_FM2_VIEW_MODE_ICONS; - sd->config->view.mode = E_FM2_VIEW_MODE_LIST; - sd->config->view.open_dirs_in_place = EINA_TRUE; - sd->config->view.selector = EINA_TRUE; - sd->config->view.single_click = EINA_FALSE; - sd->config->view.single_click_delay = EINA_FALSE; - sd->config->view.no_subdir_jump = EINA_FALSE; - sd->config->icon.icon.w = 28; - sd->config->icon.icon.h = 28; - sd->config->icon.list.w = 24; - sd->config->icon.list.h = 24; - sd->config->icon.fixed.w = EINA_TRUE; - sd->config->icon.fixed.h = EINA_TRUE; - sd->config->icon.extension.show = EINA_FALSE; - sd->config->list.sort.no_case = EINA_TRUE; - sd->config->list.sort.dirs.first = EINA_TRUE; - sd->config->list.sort.dirs.last = EINA_FALSE; - sd->config->selection.single = EINA_FALSE; - sd->config->selection.windows_modifiers = EINA_FALSE; - sd->config->theme.background = NULL; - sd->config->theme.frame = NULL; - sd->config->theme.icons = NULL; - sd->config->theme.fixed = EINA_FALSE; + sd->config->view.mode = E_FM2_VIEW_MODE_LIST; + sd->config->view.open_dirs_in_place = EINA_TRUE; + sd->config->view.selector = EINA_TRUE; + sd->config->view.single_click = EINA_FALSE; + sd->config->view.single_click_delay = EINA_FALSE; + sd->config->view.no_subdir_jump = EINA_FALSE; + sd->config->icon.icon.w = 28; + sd->config->icon.icon.h = 28; + sd->config->icon.list.w = 24; + sd->config->icon.list.h = 24; + sd->config->icon.fixed.w = EINA_TRUE; + sd->config->icon.fixed.h = EINA_TRUE; + sd->config->icon.extension.show = EINA_FALSE; + sd->config->list.sort.no_case = EINA_TRUE; + sd->config->list.sort.dirs.first = EINA_TRUE; + sd->config->list.sort.dirs.last = EINA_FALSE; + sd->config->selection.single = EINA_FALSE; + sd->config->selection.windows_modifiers = EINA_FALSE; + sd->config->theme.background = NULL; + sd->config->theme.frame = NULL; + sd->config->theme.icons = NULL; + sd->config->theme.fixed = EINA_FALSE; } realpath = _e_fm2_dev_path_map(dev, path); @@ -930,28 +940,28 @@ if (dev && strncmp(dev, "removable:", 10) && !ecore_file_exists(realpath)) { - E_Manager *man; - E_Container *con; - E_Dialog *dialog; - char text[4096 + 256]; + E_Manager *man; + E_Container *con; + E_Dialog *dialog; + char text[4096 + 256]; - man = e_manager_current_get(); - if (!man) return; - con = e_container_current_get(man); - if (!con) return; + man = e_manager_current_get(); + if (!man) return; + con = e_container_current_get(man); + if (!con) return; - dialog = e_dialog_new(con, "E", "_fm_file_unexisting_path_dialog"); - e_dialog_button_add(dialog, _("Close"), NULL, NULL, dialog); - e_dialog_button_focus_num(dialog, 0); - e_dialog_title_set(dialog, _("Nonexistent path")); + dialog = e_dialog_new(con, "E", "_fm_file_unexisting_path_dialog"); + e_dialog_button_add(dialog, _("Close"), NULL, NULL, dialog); + e_dialog_button_focus_num(dialog, 0); + e_dialog_title_set(dialog, _("Nonexistent path")); e_dialog_icon_set(dialog, "dialog-error", 64); - snprintf(text, sizeof(text), _("%s doesn't exist."), realpath); + snprintf(text, sizeof(text), _("%s doesn't exist."), realpath); - e_dialog_text_set(dialog, text); - e_win_centered_set(dialog->win, 1); - e_dialog_show(dialog); - return; + e_dialog_text_set(dialog, text); + e_win_centered_set(dialog->win, 1); + e_dialog_show(dialog); + return; } if (sd->realpath) _e_fm2_client_monitor_del(sd->id, sd->realpath); @@ -971,37 +981,37 @@ /* If the path change from a mountpoint to something else, we fake-unmount */ if (sd->mount && sd->mount->mount_point && strncmp(sd->mount->mount_point, sd->realpath, - strlen(sd->mount->mount_point))) + strlen(sd->mount->mount_point))) { - e_fm2_device_unmount(sd->mount); - sd->mount = NULL; + e_fm2_device_unmount(sd->mount); + sd->mount = NULL; } /* If the path is of type removable: we add a new mountpoint */ if (sd->dev && !sd->mount && !strncmp(sd->dev, "removable:", 10)) { - E_Volume *v = NULL; + E_Volume *v = NULL; - v = e_fm2_device_volume_find(sd->dev + strlen("removable:")); - if (v) - sd->mount = e_fm2_device_mount(v, - _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail, - _e_fm2_cb_unmount_ok, NULL, obj); + v = e_fm2_device_volume_find(sd->dev + strlen("removable:")); + if (v) + sd->mount = e_fm2_device_mount(v, + _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail, + _e_fm2_cb_unmount_ok, NULL, obj); } else if (sd->config->view.open_dirs_in_place == 0) { - E_Fm2_Mount *m; - m = e_fm2_device_mount_find(sd->realpath); - if (m) - sd->mount = e_fm2_device_mount(m->volume, - _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail, - _e_fm2_cb_unmount_ok, NULL, obj); + E_Fm2_Mount *m; + m = e_fm2_device_mount_find(sd->realpath); + if (m) + sd->mount = e_fm2_device_mount(m->volume, + _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail, + _e_fm2_cb_unmount_ok, NULL, obj); } if (!sd->mount || sd->mount->mounted) { - sd->id = _e_fm2_client_monitor_add(sd->realpath); - sd->listing = EINA_TRUE; + sd->id = _e_fm2_client_monitor_add(sd->realpath); + sd->listing = EINA_TRUE; } /* Clean up typebuf. */ @@ -1017,9 +1027,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety evas_object_show(sd->underlay); } @@ -1029,9 +1039,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety evas_object_hide(sd->underlay); } @@ -1041,9 +1051,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety _e_fm2_icon_desel_any(obj); } @@ -1053,9 +1063,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety _e_fm2_icon_sel_any(obj); } @@ -1065,18 +1075,18 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety eina_stringshare_replace(&sd->custom_theme, path); _e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman", - "list/drop_between"); + "list/drop_between"); _e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman", - "list/drop_in"); + "list/drop_in"); _e_fm2_theme_edje_object_set(sd, sd->overlay, "base/theme/fileman", - "overlay"); + "overlay"); _e_fm2_theme_edje_object_set(sd, sd->sel_rect, "base/theme/fileman", - "rubberband"); + "rubberband"); } EAPI void @@ -1085,16 +1095,16 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety eina_stringshare_replace(&sd->custom_theme_content, content); _e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman", - "list/drop_between"); + "list/drop_between"); _e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman", - "list/drop_in"); + "list/drop_in"); _e_fm2_theme_edje_object_set(sd, sd->overlay, "base/theme/fileman", - "overlay"); + "overlay"); } EAPI void @@ -1105,9 +1115,9 @@ if (dev) *dev = NULL; if (path) *path = NULL; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety if (dev) *dev = sd->dev; if (path) *path = sd->path; } @@ -1125,8 +1135,8 @@ cf = e_fm2_custom_file_get(parent); if ((cf) && (cf->dir) && (cf->dir->prop.in_use)) { - free(parent); - return cf; + free(parent); + return cf; } cf = _e_fm2_dir_load_props_from_parent(parent); @@ -1144,44 +1154,44 @@ cf = e_fm2_custom_file_get(sd->realpath); if ((cf) && (cf->dir)) { - Evas_Coord x, y; + Evas_Coord x, y; - if (sd->max.w - sd->w > 0) - x = (sd->max.w - sd->w) * cf->dir->pos.x; - else - x = 0; + if (sd->max.w - sd->w > 0) + x = (sd->max.w - sd->w) * cf->dir->pos.x; + else + x = 0; - if (sd->max.h - sd->h > 0) - y = (sd->max.h - sd->h) * cf->dir->pos.y; - else - y = 0; + if (sd->max.h - sd->h > 0) + y = (sd->max.h - sd->h) * cf->dir->pos.y; + else + y = 0; - e_fm2_pan_set(sd->obj, x, y); + e_fm2_pan_set(sd->obj, x, y); - if (cf->dir->prop.in_use) - { - sd->view_mode = cf->dir->prop.view_mode; - sd->icon_size = cf->dir->prop.icon_size; - sd->order_file = !!cf->dir->prop.order_file; - sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; - sd->inherited_dir_props = EINA_FALSE; - return; - } + if (cf->dir->prop.in_use) + { + sd->view_mode = cf->dir->prop.view_mode; + sd->icon_size = cf->dir->prop.icon_size; + sd->order_file = !!cf->dir->prop.order_file; + sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; + sd->inherited_dir_props = EINA_FALSE; + return; + } } else { - sd->pos.x = EINA_FALSE; - sd->pos.y = EINA_FALSE; + sd->pos.x = EINA_FALSE; + sd->pos.y = EINA_FALSE; } if (!(sd->view_flags & E_FM2_VIEW_INHERIT_DIR_CUSTOM)) { - sd->view_mode = -1; - sd->icon_size = -1; - sd->order_file = EINA_FALSE; - sd->show_hidden_files = EINA_FALSE; - sd->inherited_dir_props = EINA_FALSE; - return; + sd->view_mode = -1; + sd->icon_size = -1; + sd->order_file = EINA_FALSE; + sd->show_hidden_files = EINA_FALSE; + sd->inherited_dir_props = EINA_FALSE; + return; } sd->inherited_dir_props = EINA_TRUE; @@ -1189,17 +1199,17 @@ cf = _e_fm2_dir_load_props_from_parent(sd->realpath); if ((cf) && (cf->dir) && (cf->dir->prop.in_use)) { - sd->view_mode = cf->dir->prop.view_mode; - sd->icon_size = cf->dir->prop.icon_size; - sd->order_file = !!cf->dir->prop.order_file; - sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; + sd->view_mode = cf->dir->prop.view_mode; + sd->icon_size = cf->dir->prop.icon_size; + sd->order_file = !!cf->dir->prop.order_file; + sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; } else { - sd->view_mode = -1; - sd->icon_size = -1; - sd->order_file = EINA_FALSE; - sd->show_hidden_files = EINA_FALSE; + sd->view_mode = -1; + sd->icon_size = -1; + sd->order_file = EINA_FALSE; + sd->show_hidden_files = EINA_FALSE; } } @@ -1214,16 +1224,16 @@ cf = e_fm2_custom_file_get(sd->realpath); if (!cf) { - cf = &cf0; - memset(cf, 0, sizeof(*cf)); - cf->dir = &dir0; + cf = &cf0; + memset(cf, 0, sizeof(*cf)); + cf->dir = &dir0; } else if (!cf->dir) { - E_Fm2_Custom_File *cf2 = cf; - cf = &cf0; - memcpy(cf, cf2, sizeof(*cf2)); - cf->dir = &dir0; + E_Fm2_Custom_File *cf2 = cf; + cf = &cf0; + memcpy(cf, cf2, sizeof(*cf2)); + cf->dir = &dir0; } if (sd->max.w - sd->w > 0) @@ -1252,9 +1262,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety _e_fm2_dir_save_props(sd); @@ -1266,10 +1276,10 @@ if (sd->realpath) { - sd->listing = EINA_FALSE; - _e_fm2_client_monitor_del(sd->id, sd->realpath); - sd->id = _e_fm2_client_monitor_add(sd->realpath); - sd->listing = EINA_TRUE; + sd->listing = EINA_FALSE; + _e_fm2_client_monitor_del(sd->id, sd->realpath); + sd->id = _e_fm2_client_monitor_add(sd->realpath); + sd->listing = EINA_TRUE; } sd->tmp.iter = EINA_FALSE; @@ -1281,9 +1291,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return 0; // safety - if (!evas_object_type_get(obj)) return 0; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return 0; // safety + if (!sd) return 0; // safety + if (!evas_object_type_get(obj)) return 0; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return 0; // safety if (!sd->path) return 0; if ((sd->path[0] == 0) || (!strcmp(sd->path, "/"))) return 0; return 1; @@ -1295,9 +1305,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; // safety - if (!evas_object_type_get(obj)) return NULL; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // safety + if (!sd) return NULL; // safety + if (!evas_object_type_get(obj)) return NULL; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // safety return sd->realpath; } @@ -1308,9 +1318,9 @@ char *p, *path; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety if (!sd->path) return; path = strdup(sd->path); if (!path) return; @@ -1329,9 +1339,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return; // safety - if (!evas_object_type_get(obj)) return; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety if (sd->config) _e_fm2_config_free(sd->config); sd->config = NULL; if (!cfg) return; @@ -1350,9 +1360,9 @@ E_Fm2_Smart_Data *sd; sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; // safety - if (!evas_object_type_get(obj)) return NULL; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // safety + if (!sd) return NULL; // safety + if (!evas_object_type_get(obj)) return NULL; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // safety return sd->config; } @@ -1364,13 +1374,13 @@ E_Fm2_Icon *ic; sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; // safety - if (!evas_object_type_get(obj)) return NULL; // safety - if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // safety + if (!sd) return NULL; // safety + if (!evas_object_type_get(obj)) return NULL; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return NULL; // ... [truncated message content] |
From: Enlightenment S. <no-...@en...> - 2010-10-22 20:36:45
|
Log: dunno how that snuck in Author: discomfitor Date: 2010-10-22 13:36:38 -0700 (Fri, 22 Oct 2010) New Revision: 53784 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-10-22 20:12:03 UTC (rev 53783) +++ trunk/e/src/bin/e_fm.c 2010-10-22 20:36:38 UTC (rev 53784) @@ -259,7 +259,7 @@ static void _e_fm2_icon_make_visible(E_Fm2_Icon *ic); static void _e_fm2_icon_desel_any(Evas_Object *obj); static E_Fm2_Icon * _e_fm2_icon_first_selected_find(Evas_Object *obj); -static E_Fm2_Icon * _e_fm2_icon_next_find(Evas_Object *obj, int next, intmatch_func(E_Fm2_Icon * ic, void *data), void *data); +static E_Fm2_Icon * _e_fm2_icon_next_find(Evas_Object *obj, int next, int match_func(E_Fm2_Icon * ic, void *data), void *data); static void _e_fm2_icon_sel_first(Evas_Object *obj); static void _e_fm2_icon_sel_last(Evas_Object *obj); |
From: Enlightenment S. <no-...@en...> - 2010-10-23 06:05:11
|
Log: run #2 of ecrustify, plus a manual edit to correctly make a function pointer * now aligns with function prototype name, a couple other tiny spacing fixes Author: discomfitor Date: 2010-10-22 23:05:03 -0700 (Fri, 22 Oct 2010) New Revision: 53798 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-10-23 04:40:30 UTC (rev 53797) +++ trunk/e/src/bin/e_fm.c 2010-10-23 06:05:03 UTC (rev 53798) @@ -214,7 +214,7 @@ E_Fm2_Mime_Handler *handler; }; -static const char * _e_fm2_dev_path_map(const char *dev, const char *path); +static const char *_e_fm2_dev_path_map(const char *dev, const char *path); static void _e_fm2_file_add(Evas_Object *obj, const char *file, int unique, const char *file_rel, int after, E_Fm2_Finfo *finf); static void _e_fm2_file_del(Evas_Object *obj, const char *file); static void _e_fm2_queue_process(Evas_Object *obj); @@ -229,13 +229,13 @@ static void _e_fm2_dir_load_props(E_Fm2_Smart_Data *sd); static void _e_fm2_dir_save_props(E_Fm2_Smart_Data *sd); -static Evas_Object * _e_fm2_file_fm2_find(const char *file); -static E_Fm2_Icon * _e_fm2_icon_find(Evas_Object *obj, const char *file); -static const char * _e_fm2_uri_escape(const char *path); -static Eina_List * _e_fm2_uri_path_list_get(Eina_List *uri_list); -static Eina_List * _e_fm2_uri_icon_list_get(Eina_List *uri); +static Evas_Object *_e_fm2_file_fm2_find(const char *file); +static E_Fm2_Icon *_e_fm2_icon_find(Evas_Object *obj, const char *file); +static const char *_e_fm2_uri_escape(const char *path); +static Eina_List *_e_fm2_uri_path_list_get(Eina_List *uri_list); +static Eina_List *_e_fm2_uri_icon_list_get(Eina_List *uri); -static E_Fm2_Icon * _e_fm2_icon_new(E_Fm2_Smart_Data *sd, const char *file, E_Fm2_Finfo *finf); +static E_Fm2_Icon *_e_fm2_icon_new(E_Fm2_Smart_Data *sd, const char *file, E_Fm2_Finfo *finf); static void _e_fm2_icon_unfill(E_Fm2_Icon *ic); static int _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf); static void _e_fm2_icon_free(E_Fm2_Icon *ic); @@ -243,7 +243,7 @@ static void _e_fm2_icon_unrealize(E_Fm2_Icon *ic); static Eina_Bool _e_fm2_icon_visible(const E_Fm2_Icon *ic); static void _e_fm2_icon_label_set(E_Fm2_Icon *ic, Evas_Object *obj); -static Evas_Object * _e_fm2_icon_icon_direct_set(E_Fm2_Icon *ic, Evas_Object *o, Evas_Smart_Cb gen_func, void *data, int force_gen); +static Evas_Object *_e_fm2_icon_icon_direct_set(E_Fm2_Icon *ic, Evas_Object *o, Evas_Smart_Cb gen_func, void *data, int force_gen); static void _e_fm2_icon_icon_set(E_Fm2_Icon *ic); static void _e_fm2_icon_thumb(const E_Fm2_Icon *ic, Evas_Object *oic, int force); static void _e_fm2_icon_select(E_Fm2_Icon *ic); @@ -258,8 +258,8 @@ static void _e_fm2_icon_make_visible(E_Fm2_Icon *ic); static void _e_fm2_icon_desel_any(Evas_Object *obj); -static E_Fm2_Icon * _e_fm2_icon_first_selected_find(Evas_Object *obj); -static E_Fm2_Icon * _e_fm2_icon_next_find(Evas_Object *obj, int next, int match_func(E_Fm2_Icon * ic, void *data), void *data); +static E_Fm2_Icon *_e_fm2_icon_first_selected_find(Evas_Object *obj); +static E_Fm2_Icon *_e_fm2_icon_next_find(Evas_Object *obj, int next, int (*match_func)(E_Fm2_Icon *ic, void *data), void *data); static void _e_fm2_icon_sel_first(Evas_Object *obj); static void _e_fm2_icon_sel_last(Evas_Object *obj); @@ -343,24 +343,24 @@ static void _e_fm2_file_properties_delete_cb(void *obj); static void _e_fm2_file_do_rename(const char *text, E_Fm2_Icon *ic); -static Evas_Object * _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic); +static Evas_Object *_e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic); static void _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic); static void _e_fm2_icon_entry_widget_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_fm2_icon_entry_widget_accept(E_Fm2_Icon *ic); -static E_Dialog * _e_fm_retry_abort_dialog(int pid, const char *str); +static E_Dialog *_e_fm_retry_abort_dialog(int pid, const char *str); static void _e_fm_retry_abort_delete_cb(void *obj); static void _e_fm_retry_abort_retry_cb(void *data, E_Dialog *dialog); static void _e_fm_retry_abort_abort_cb(void *data, E_Dialog *dialog); -static E_Dialog * _e_fm_overwrite_dialog(int pid, const char *str); +static E_Dialog *_e_fm_overwrite_dialog(int pid, const char *str); static void _e_fm_overwrite_delete_cb(void *obj); static void _e_fm_overwrite_no_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_no_all_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_yes_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_yes_all_cb(void *data, E_Dialog *dialog); -static E_Dialog * _e_fm_error_dialog(int pid, const char *str); +static E_Dialog *_e_fm_error_dialog(int pid, const char *str); static void _e_fm_error_delete_cb(void *obj); static void _e_fm_error_retry_cb(void *data, E_Dialog *dialog); static void _e_fm_error_abort_cb(void *data, E_Dialog *dialog); @@ -415,8 +415,8 @@ static inline void _e_fm2_context_menu_append(Evas_Object *obj, const char *path, Eina_List *l, E_Menu *mn, E_Fm2_Icon *ic); static int _e_fm2_context_list_sort(const void *data1, const void *data2); -static char * _e_fm_string_append_char(char *str, size_t *size, size_t *len, char c); -static char * _e_fm_string_append_quoted(char *str, size_t *size, size_t *len, const char *src); +static char *_e_fm_string_append_char(char *str, size_t *size, size_t *len, char c); +static char *_e_fm_string_append_quoted(char *str, size_t *size, size_t *len, const char *src); void _e_fm2_path_parent_set(Evas_Object *obj, const char *path); @@ -510,8 +510,8 @@ return 0; ext++; - return ((strcasecmp(ext, "esktop") == 0) || - (strcasecmp(ext, "irectory") == 0)); + return (strcasecmp(ext, "esktop") == 0) || + (strcasecmp(ext, "irectory") == 0); #endif } @@ -526,7 +526,7 @@ else return 0; #else - return (strcasecmp(ext, "imc") == 0); + return strcasecmp(ext, "imc") == 0; #endif } @@ -534,14 +534,14 @@ _e_fm2_file_is_edje(const char *file) { const char *p = strrchr(file, '.'); - return ((p) && (_e_fm2_ext_is_edje(p + 1))); + return (p) && (_e_fm2_ext_is_edje(p + 1)); } static inline Eina_Bool _e_fm2_file_is_desktop(const char *file) { const char *p = strrchr(file, '.'); - return ((p) && (_e_fm2_ext_is_desktop(p + 1))); + return (p) && (_e_fm2_ext_is_desktop(p + 1)); } static inline char @@ -5172,7 +5172,7 @@ } static E_Fm2_Icon * -_e_fm2_icon_next_find(Evas_Object *obj, int next, int match_func(E_Fm2_Icon *ic, void *data), void *data) +_e_fm2_icon_next_find(Evas_Object *obj, int next, int (*match_func)(E_Fm2_Icon *ic, void *data), void *data) { E_Fm2_Smart_Data *sd; Eina_List *l; @@ -5569,10 +5569,10 @@ _e_fm2_typebuf_match_func(E_Fm2_Icon *ic, void *data) { char *tb = data; - return (((ic->info.label) && - (e_util_glob_case_match(ic->info.label, tb))) || - ((ic->info.file) && - (e_util_glob_case_match(ic->info.file, tb)))); + return ((ic->info.label) && + (e_util_glob_case_match(ic->info.label, tb))) || + ((ic->info.file) && + (e_util_glob_case_match(ic->info.file, tb))); } static Eina_Bool @@ -7772,7 +7772,7 @@ { mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Show Hidden Files")); - e_util_menu_item_theme_icon_set(mi,"view-refresh"); + e_util_menu_item_theme_icon_set(mi, "view-refresh"); e_menu_item_check_set(mi, 1); e_menu_item_toggle_set(mi, sd->show_hidden_files); e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd); @@ -8239,7 +8239,7 @@ if (!d1->label) return 1; d2 = data2; if (!d2->label) return -1; - return (strcmp(d1->label, d2->label)); + return strcmp(d1->label, d2->label); } static void |
From: Enlightenment S. <no-...@en...> - 2010-11-03 21:31:51
|
Log: fix some vars that should be ints after all Author: discomfitor Date: 2010-11-03 14:31:44 -0700 (Wed, 03 Nov 2010) New Revision: 54135 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-11-03 19:38:00 UTC (rev 54134) +++ trunk/e/src/bin/e_fm.c 2010-11-03 21:31:44 UTC (rev 54135) @@ -1180,8 +1180,8 @@ } else { - sd->pos.x = EINA_FALSE; - sd->pos.y = EINA_FALSE; + sd->pos.x = 0; + sd->pos.y = 0; } if (!(sd->view_flags & E_FM2_VIEW_INHERIT_DIR_CUSTOM)) @@ -3913,8 +3913,8 @@ Eina_List *l; E_Fm2_Icon *ic2; - ic->x = EINA_FALSE; - ic->y = EINA_FALSE; + ic->x = 0; + ic->y = 0; ic->saved_pos = EINA_TRUE; /* ### BLAH ### */ // if (!_e_fm2_icons_icon_overlaps(ic)) return; @@ -7104,8 +7104,8 @@ sd = data; sd->selecting = EINA_FALSE; - sd->selrect.ox = EINA_FALSE; - sd->selrect.oy = EINA_FALSE; + sd->selrect.ox = 0; + sd->selrect.oy = 0; evas_object_hide(sd->sel_rect); } @@ -7125,8 +7125,8 @@ if (sd->selecting) { sd->selecting = EINA_FALSE; - sd->selrect.ox = EINA_FALSE; - sd->selrect.oy = EINA_FALSE; + sd->selrect.ox = 0; + sd->selrect.oy = 0; evas_object_hide(sd->sel_rect); } return; |
From: Enlightenment S. <no-...@en...> - 2010-11-03 21:46:16
|
Log: more vars that should be ints Author: discomfitor Date: 2010-11-03 14:46:10 -0700 (Wed, 03 Nov 2010) New Revision: 54136 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-11-03 21:31:44 UTC (rev 54135) +++ trunk/e/src/bin/e_fm.c 2010-11-03 21:46:10 UTC (rev 54136) @@ -4068,8 +4068,8 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; /* take the icon list and find a location for them */ - sd->max.w = EINA_FALSE; - sd->max.h = EINA_FALSE; + sd->max.w = 0; + sd->max.h = 0; switch (_e_fm2_view_mode_get(sd)) { case E_FM2_VIEW_MODE_ICONS: @@ -6231,8 +6231,8 @@ } if (adjust_icons) { - sd->max.w = EINA_FALSE; - sd->max.h = EINA_FALSE; + sd->max.w = 0; + sd->max.h = 0; EINA_LIST_FOREACH(sd->icons, l, ic) { if ((ic->x + ic->w) > sd->max.w) sd->max.w = ic->x + ic->w; @@ -7620,7 +7620,7 @@ _e_fm2_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) { E_Fm2_Smart_Data *sd; - int wch = 0; + Eina_Bool wch = EINA_FALSE; sd = evas_object_smart_data_get(obj); if (!sd) return; |
From: Enlightenment S. <no-...@en...> - 2010-11-03 22:00:02
|
Log: should fix desktop icon text shortening Author: discomfitor Date: 2010-11-03 14:59:56 -0700 (Wed, 03 Nov 2010) New Revision: 54137 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-11-03 21:46:10 UTC (rev 54136) +++ trunk/e/src/bin/e_fm.c 2010-11-03 21:59:56 UTC (rev 54137) @@ -917,8 +917,8 @@ sd->config->view.single_click = EINA_FALSE; sd->config->view.single_click_delay = EINA_FALSE; sd->config->view.no_subdir_jump = EINA_FALSE; - sd->config->icon.icon.w = 28; - sd->config->icon.icon.h = 28; + sd->config->icon.icon.w = 128; + sd->config->icon.icon.h = 128; sd->config->icon.list.w = 24; sd->config->icon.list.h = 24; sd->config->icon.fixed.w = EINA_TRUE; |
From: Enlightenment S. <no-...@en...> - 2010-11-03 22:05:24
|
Log: and this is a uchar Author: discomfitor Date: 2010-11-03 15:05:17 -0700 (Wed, 03 Nov 2010) New Revision: 54138 Modified: trunk/e/src/bin/e_fm.h Modified: trunk/e/src/bin/e_fm.h =================================================================== --- trunk/e/src/bin/e_fm.h 2010-11-03 21:59:56 UTC (rev 54137) +++ trunk/e/src/bin/e_fm.h 2010-11-03 22:05:17 UTC (rev 54138) @@ -119,7 +119,7 @@ const char *real_link; const char *category; struct stat statinfo; - Eina_Bool icon_type; + unsigned char icon_type; Eina_Bool mount : 1; Eina_Bool removable : 1; Eina_Bool removable_full : 1; |
From: Enlightenment S. <no-...@en...> - 2010-11-03 23:30:58
|
Log: fixes from JaMa for filename truncation Author: discomfitor Date: 2010-11-03 16:30:52 -0700 (Wed, 03 Nov 2010) New Revision: 54140 Modified: trunk/e/src/bin/e_fm.h Modified: trunk/e/src/bin/e_fm.h =================================================================== --- trunk/e/src/bin/e_fm.h 2010-11-03 23:10:54 UTC (rev 54139) +++ trunk/e/src/bin/e_fm.h 2010-11-03 23:30:52 UTC (rev 54140) @@ -74,8 +74,8 @@ int w, h; } icon, list; struct { - Eina_Bool w : 1; - Eina_Bool h : 1; + unsigned char w; + unsigned char h; } fixed; struct { Eina_Bool show : 1; |
From: Enlightenment S. <no-...@en...> - 2010-11-12 23:59:43
|
Log: null pointer to fix resolution switching crash Author: discomfitor Date: 2010-11-12 15:59:35 -0800 (Fri, 12 Nov 2010) New Revision: 54526 Modified: trunk/e/src/bin/e_randr.c Modified: trunk/e/src/bin/e_randr.c =================================================================== --- trunk/e/src/bin/e_randr.c 2010-11-12 21:52:12 UTC (rev 54525) +++ trunk/e/src/bin/e_randr.c 2010-11-12 23:59:35 UTC (rev 54526) @@ -741,6 +741,7 @@ crtc_info->geometry.h = 0; crtc_info->current_mode = NULL; if (crtc_info->outputs) eina_list_free(crtc_info->outputs); + crtc_info->outputs = NULL; //update screensize of necessary ecore_x_randr_screen_reset(e_randr_screen_info->root); |
From: Enlightenment S. <no-...@en...> - 2010-12-12 15:39:49
|
Log: comment out annoying debug printf Author: discomfitor Date: 2010-12-12 07:39:41 -0800 (Sun, 12 Dec 2010) New Revision: 55513 Trac: http://trac.enlightenment.org/e/changeset/55513 Modified: trunk/e/src/bin/e_configure.c Modified: trunk/e/src/bin/e_configure.c =================================================================== --- trunk/e/src/bin/e_configure.c 2010-12-12 14:41:04 UTC (rev 55512) +++ trunk/e/src/bin/e_configure.c 2010-12-12 15:39:41 UTC (rev 55513) @@ -260,7 +260,7 @@ Eina_List *l; E_Configure_Cat *ecat; - printf("cleanup\n"); +// printf("_e_configure_efreet_desktop_cleanup\n"); /* remove anything with a desktop entry */ EINA_LIST_FOREACH(e_configure_registry, l, ecat) { |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:27:00
|
Log: hooray idempotence! no wait, not hooray. Author: discomfitor Date: 2010-12-22 14:26:53 -0800 (Wed, 22 Dec 2010) New Revision: 55699 Trac: http://trac.enlightenment.org/e/changeset/55699 Modified: trunk/e/src/bin/e_randr.c Modified: trunk/e/src/bin/e_randr.c =================================================================== --- trunk/e/src/bin/e_randr.c 2010-12-22 22:22:59 UTC (rev 55698) +++ trunk/e/src/bin/e_randr.c 2010-12-22 22:26:53 UTC (rev 55699) @@ -179,7 +179,7 @@ if (!(ret = malloc(sizeof(E_Randr_Screen_Info)))) return NULL; - ret = memcpy(ret, &default_info, sizeof(default_info)); + memcpy(ret, &default_info, sizeof(default_info)); return ret; } |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:36:20
|
Log: someone is using an editor that has tabs. stop it. ecrustified. Author: discomfitor Date: 2010-12-22 14:36:13 -0800 (Wed, 22 Dec 2010) New Revision: 55702 Trac: http://trac.enlightenment.org/e/changeset/55702 Modified: trunk/e/src/bin/e_thumb_main.c Modified: trunk/e/src/bin/e_thumb_main.c =================================================================== --- trunk/e/src/bin/e_thumb_main.c 2010-12-22 22:31:24 UTC (rev 55701) +++ trunk/e/src/bin/e_thumb_main.c 2010-12-22 22:36:13 UTC (rev 55702) @@ -14,7 +14,7 @@ # ifdef __cplusplus extern "C" # endif -void *alloca (size_t); +void *alloca(size_t); #endif #include <stdio.h> @@ -42,13 +42,20 @@ }; /* local subsystem functions */ -static int _e_ipc_init(void); -static Eina_Bool _e_ipc_cb_server_add(void *data, int type, void *event); -static Eina_Bool _e_ipc_cb_server_del(void *data, int type, void *event); -static Eina_Bool _e_ipc_cb_server_data(void *data, int type, void *event); +static int _e_ipc_init(void); +static Eina_Bool _e_ipc_cb_server_add(void *data, + int type, + void *event); +static Eina_Bool _e_ipc_cb_server_del(void *data, + int type, + void *event); +static Eina_Bool _e_ipc_cb_server_data(void *data, + int type, + void *event); static Eina_Bool _e_cb_timer(void *data); -static void _e_thumb_generate(E_Thumb *eth); -static char *_e_thumb_file_id(char *file, char *key); +static void _e_thumb_generate(E_Thumb *eth); +static char *_e_thumb_file_id(char *file, + char *key); /* local subsystem globals */ static Ecore_Ipc_Server *_e_ipc_server = NULL; @@ -58,32 +65,33 @@ /* externally accessible functions */ int -main(int argc, char **argv) +main(int argc, + char **argv) { int i; for (i = 1; i < argc; i++) { - if ((!strcmp(argv[i], "-h")) || - (!strcmp(argv[i], "-help")) || - (!strcmp(argv[i], "--help"))) - { - printf( - "This is an internal tool for Enlightenment.\n" - "do not use it.\n" - ); - exit(0); - } - else if (!strncmp(argv[i], "--nice=", 7)) - { - const char *val; + if ((!strcmp(argv[i], "-h")) || + (!strcmp(argv[i], "-help")) || + (!strcmp(argv[i], "--help"))) + { + printf( + "This is an internal tool for Enlightenment.\n" + "do not use it.\n" + ); + exit(0); + } + else if (!strncmp(argv[i], "--nice=", 7)) + { + const char *val; - val = argv[i] + 7; - if (*val) - nice(atoi(val)); - } + val = argv[i] + 7; + if (*val) + nice(atoi(val)); + } } - + ecore_init(); ecore_app_args_set(argc, (const char **)argv); eet_init(); @@ -97,11 +105,11 @@ ecore_file_mkpath(_thumbdir); if (_e_ipc_init()) ecore_main_loop_begin(); - + if (_e_ipc_server) { - ecore_ipc_server_del(_e_ipc_server); - _e_ipc_server = NULL; + ecore_ipc_server_del(_e_ipc_server); + _e_ipc_server = NULL; } ecore_ipc_shutdown(); @@ -111,7 +119,7 @@ evas_shutdown(); eet_shutdown(); ecore_shutdown(); - + return 0; } @@ -124,100 +132,109 @@ sdir = getenv("E_IPC_SOCKET"); if (!sdir) { - printf("The E_IPC_SOCKET environment variable is not set. This is\n" - "exported by Enlightenment to all processes it launches.\n" - "This environment variable must be set and must point to\n" - "Enlightenment's IPC socket file (minus port number).\n"); - return 0; + printf("The E_IPC_SOCKET environment variable is not set. This is\n" + "exported by Enlightenment to all processes it launches.\n" + "This environment variable must be set and must point to\n" + "Enlightenment's IPC socket file (minus port number).\n"); + return 0; } _e_ipc_server = ecore_ipc_server_connect(ECORE_IPC_LOCAL_SYSTEM, sdir, 0, NULL); if (!_e_ipc_server) return 0; - + ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, _e_ipc_cb_server_add, NULL); ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _e_ipc_cb_server_del, NULL); ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, _e_ipc_cb_server_data, NULL); - + return 1; } static Eina_Bool -_e_ipc_cb_server_add(void *data __UNUSED__, int type __UNUSED__, void *event) +_e_ipc_cb_server_add(void *data __UNUSED__, + int type __UNUSED__, + void *event) { Ecore_Ipc_Event_Server_Add *e; e = event; - ecore_ipc_server_send(e->server, - 5/*E_IPC_DOMAIN_THUMB*/, - 1/*hello*/, - 0, 0, 0, NULL, 0); /* send hello */ + ecore_ipc_server_send(e->server, + 5 /*E_IPC_DOMAIN_THUMB*/, + 1 /*hello*/, + 0, 0, 0, NULL, 0); /* send hello */ return ECORE_CALLBACK_PASS_ON; } static Eina_Bool -_e_ipc_cb_server_del(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) +_e_ipc_cb_server_del(void *data __UNUSED__, + int type __UNUSED__, + void *event __UNUSED__) { /* quit now */ - ecore_main_loop_quit(); - return ECORE_CALLBACK_PASS_ON; + ecore_main_loop_quit(); + return ECORE_CALLBACK_PASS_ON; } static Eina_Bool -_e_ipc_cb_server_data(void *data __UNUSED__, int type __UNUSED__, void *event) +_e_ipc_cb_server_data(void *data __UNUSED__, + int type __UNUSED__, + void *event) { Ecore_Ipc_Event_Server_Data *e; E_Thumb *eth; Eina_List *l; char *file = NULL; char *key = NULL; - + e = event; - if (e->major != 5/*E_IPC_DOMAIN_THUMB*/) return ECORE_CALLBACK_PASS_ON; + if (e->major != 5 /*E_IPC_DOMAIN_THUMB*/) return ECORE_CALLBACK_PASS_ON; switch (e->minor) { case 1: - if (e->data) - { - /* begin thumb */ - /* don't check stuff. since this connects TO e17 it is connecting */ - /* TO a trusted process that WILL send this message properly */ - /* formatted. if the thumbnailer dies anyway - it's not a big loss */ - /* but it is a sign of a bug in e formattign messages maybe */ - file = e->data; - key = file + strlen(file) + 1; - if (!key[0]) key = NULL; - eth = calloc(1, sizeof(E_Thumb)); - if (eth) - { - eth->objid = e->ref; - eth->w = e->ref_to; - eth->h = e->response; - eth->file = strdup(file); - if (key) eth->key = strdup(key); - _thumblist = eina_list_append(_thumblist, eth); - if (!_timer) _timer = ecore_timer_add(0.001, _e_cb_timer, NULL); - } - } - break; + if (e->data) + { + /* begin thumb */ + /* don't check stuff. since this connects TO e17 it is connecting */ + /* TO a trusted process that WILL send this message properly */ + /* formatted. if the thumbnailer dies anyway - it's not a big loss */ + /* but it is a sign of a bug in e formattign messages maybe */ + file = e->data; + key = file + strlen(file) + 1; + if (!key[0]) key = NULL; + eth = calloc(1, sizeof(E_Thumb)); + if (eth) + { + eth->objid = e->ref; + eth->w = e->ref_to; + eth->h = e->response; + eth->file = strdup(file); + if (key) eth->key = strdup(key); + _thumblist = eina_list_append(_thumblist, eth); + if (!_timer) _timer = ecore_timer_add(0.001, _e_cb_timer, NULL); + } + } + break; + case 2: - /* end thumb */ - EINA_LIST_FOREACH(_thumblist, l, eth) - { - if (eth->objid == e->ref) - { - _thumblist = eina_list_remove_list(_thumblist, l); - if (eth->file) free(eth->file); - if (eth->key) free(eth->key); - free(eth); - break; - } - } - break; + /* end thumb */ + EINA_LIST_FOREACH(_thumblist, l, eth) + { + if (eth->objid == e->ref) + { + _thumblist = eina_list_remove_list(_thumblist, l); + if (eth->file) free(eth->file); + if (eth->key) free(eth->key); + free(eth); + break; + } + } + break; + case 3: - /* quit now */ - ecore_main_loop_quit(); - break; + /* quit now */ + ecore_main_loop_quit(); + break; + default: - break; + break; } return ECORE_CALLBACK_PASS_ON; } @@ -227,21 +244,21 @@ { E_Thumb *eth; /* - Eina_List *del_list = NULL, *l; - */ + Eina_List *del_list = NULL, *l; + */ /* take thumb at head of list */ if (_thumblist) { - eth = eina_list_data_get(_thumblist); - _thumblist = eina_list_remove_list(_thumblist, _thumblist); - _e_thumb_generate(eth); - if (eth->file) free(eth->file); - if (eth->key) free(eth->key); - free(eth); + eth = eina_list_data_get(_thumblist); + _thumblist = eina_list_remove_list(_thumblist, _thumblist); + _e_thumb_generate(eth); + if (eth->file) free(eth->file); + if (eth->key) free(eth->key); + free(eth); - if (_thumblist) _timer = ecore_timer_add(0.01, _e_cb_timer, NULL); - else _timer = NULL; + if (_thumblist) _timer = ecore_timer_add(0.01, _e_cb_timer, NULL); + else _timer = NULL; } else _timer = NULL; @@ -252,9 +269,9 @@ struct _Color { - Color *closest; - int closest_dist; - int use; + Color *closest; + int closest_dist; + int use; unsigned char r, g, b; }; @@ -269,106 +286,106 @@ int iw, ih, alpha, ww, hh; const unsigned int *data = NULL; time_t mtime_orig, mtime_thumb; - + id = _e_thumb_file_id(eth->file, eth->key); if (!id) return; - + td = strdup(id); if (!td) { - free(id); - return; + free(id); + return; } td[2] = 0; - + snprintf(dbuf, sizeof(dbuf), "%s/%s", _thumbdir, td); - snprintf(buf, sizeof(buf), "%s/%s/%s-%ix%i.thm", - _thumbdir, td, id + 2, eth->w, eth->h); + snprintf(buf, sizeof(buf), "%s/%s/%s-%ix%i.thm", + _thumbdir, td, id + 2, eth->w, eth->h); free(id); free(td); - + mtime_orig = ecore_file_mod_time(eth->file); mtime_thumb = ecore_file_mod_time(buf); if (mtime_thumb <= mtime_orig) { - ecore_file_mkdir(dbuf); - - edje_file_cache_set(0); - edje_collection_cache_set(0); - ee = ecore_evas_buffer_new(1, 1); - evas = ecore_evas_get(ee); - evas_image_cache_set(evas, 0); - evas_font_cache_set(evas, 0); - ww = 0; - hh = 0; - alpha = 1; - ext = strrchr(eth->file, '.'); + ecore_file_mkdir(dbuf); - if ((ext) && (eth->key) && - ((!strcasecmp(ext, ".edj")) || - (!strcasecmp(ext, ".eap")))) - { - ww = eth->w; - hh = eth->h; - im = ecore_evas_object_image_new(ee); - ee_im = evas_object_data_get(im, "Ecore_Evas"); - evas_im = ecore_evas_get(ee_im); - evas_image_cache_set(evas_im, 0); - evas_font_cache_set(evas_im, 0); - evas_object_image_size_set(im, ww * 4, hh * 4); - evas_object_image_fill_set(im, 0, 0, ww, hh); - edje = edje_object_add(evas_im); - if ((eth->key) && - ( (!strcmp(eth->key, "e/desktop/background")) || - (!strcmp(eth->key, "e/init/splash")) )) - alpha = 0; - if (edje_object_file_set(edje, eth->file, eth->key)) - { - evas_object_move(edje, 0, 0); - evas_object_resize(edje, ww * 4, hh * 4); - evas_object_show(edje); - } - } - else - { - im = evas_object_image_add(evas); - evas_object_image_load_size_set(im, eth->w, eth->h); - evas_object_image_file_set(im, eth->file, NULL); - iw = 0; ih = 0; - evas_object_image_size_get(im, &iw, &ih); - alpha = evas_object_image_alpha_get(im); - if ((iw > 0) && (ih > 0)) - { - ww = eth->w; - hh = (eth->w * ih) / iw; - if (hh > eth->h) - { - hh = eth->h; - ww = (eth->h * iw) / ih; - } - evas_object_image_fill_set(im, 0, 0, ww, hh); - } - } - evas_object_move(im, 0, 0); - evas_object_resize(im, ww, hh); - ecore_evas_resize(ee, ww, hh); - evas_object_show(im); - if (ww > 0) - { - data = ecore_evas_buffer_pixels_get(ee); - if (data) - { - ef = eet_open(buf, EET_FILE_MODE_WRITE); - if (ef) - { - eet_write(ef, "/thumbnail/orig_file", - eth->file, strlen(eth->file), 1); - if (eth->key) - eet_write(ef, "/thumbnail/orig_key", - eth->key, strlen(eth->key), 1); - eet_data_image_write(ef, "/thumbnail/data", - (void *)data, ww, hh, alpha, - 0, 91, 1); + edje_file_cache_set(0); + edje_collection_cache_set(0); + ee = ecore_evas_buffer_new(1, 1); + evas = ecore_evas_get(ee); + evas_image_cache_set(evas, 0); + evas_font_cache_set(evas, 0); + ww = 0; + hh = 0; + alpha = 1; + ext = strrchr(eth->file, '.'); + + if ((ext) && (eth->key) && + ((!strcasecmp(ext, ".edj")) || + (!strcasecmp(ext, ".eap")))) + { + ww = eth->w; + hh = eth->h; + im = ecore_evas_object_image_new(ee); + ee_im = evas_object_data_get(im, "Ecore_Evas"); + evas_im = ecore_evas_get(ee_im); + evas_image_cache_set(evas_im, 0); + evas_font_cache_set(evas_im, 0); + evas_object_image_size_set(im, ww * 4, hh * 4); + evas_object_image_fill_set(im, 0, 0, ww, hh); + edje = edje_object_add(evas_im); + if ((eth->key) && + ((!strcmp(eth->key, "e/desktop/background")) || + (!strcmp(eth->key, "e/init/splash")))) + alpha = 0; + if (edje_object_file_set(edje, eth->file, eth->key)) + { + evas_object_move(edje, 0, 0); + evas_object_resize(edje, ww * 4, hh * 4); + evas_object_show(edje); + } + } + else + { + im = evas_object_image_add(evas); + evas_object_image_load_size_set(im, eth->w, eth->h); + evas_object_image_file_set(im, eth->file, NULL); + iw = 0; ih = 0; + evas_object_image_size_get(im, &iw, &ih); + alpha = evas_object_image_alpha_get(im); + if ((iw > 0) && (ih > 0)) + { + ww = eth->w; + hh = (eth->w * ih) / iw; + if (hh > eth->h) + { + hh = eth->h; + ww = (eth->h * iw) / ih; + } + evas_object_image_fill_set(im, 0, 0, ww, hh); + } + } + evas_object_move(im, 0, 0); + evas_object_resize(im, ww, hh); + ecore_evas_resize(ee, ww, hh); + evas_object_show(im); + if (ww > 0) + { + data = ecore_evas_buffer_pixels_get(ee); + if (data) + { + ef = eet_open(buf, EET_FILE_MODE_WRITE); + if (ef) + { + eet_write(ef, "/thumbnail/orig_file", + eth->file, strlen(eth->file), 1); + if (eth->key) + eet_write(ef, "/thumbnail/orig_key", + eth->key, strlen(eth->key), 1); + eet_data_image_write(ef, "/thumbnail/data", + (void *)data, ww, hh, alpha, + 0, 91, 1); ww = 4; hh = 4; evas_object_image_fill_set(im, 0, 0, ww, hh); evas_object_resize(im, ww, hh); @@ -377,7 +394,7 @@ if (data) { unsigned int *data1; - + data1 = malloc(ww * hh * sizeof(unsigned int)); memcpy(data1, data, ww * hh * sizeof(unsigned int)); ww = 2; hh = 2; @@ -388,7 +405,7 @@ if (data) { unsigned int *data2; - + data2 = malloc(ww * hh * sizeof(unsigned int)); memcpy(data2, data, ww * hh * sizeof(unsigned int)); ww = 1; hh = 1; @@ -404,38 +421,38 @@ int hi, si, vi; float h, s, v; const int pat2[4] = - { - 0, 3, 1, 2 - }; + { + 0, 3, 1, 2 + }; const int pat1[16] = - { - 5, 10, 6, 9, - 0, 15, 3, 12, - 1, 14, 7, 8, - 4, 11, 2, 13 - }; - + { + 5, 10, 6, 9, + 0, 15, 3, 12, + 1, 14, 7, 8, + 4, 11, 2, 13 + }; + data3 = malloc(ww * hh * sizeof(unsigned int)); memcpy(data3, data, ww * hh * sizeof(unsigned int)); - // sort_id + // sort_id n = 0; #define A(v) (((v) >> 24) & 0xff) #define R(v) (((v) >> 16) & 0xff) -#define G(v) (((v) >> 8 ) & 0xff) -#define B(v) (((v) ) & 0xff) -#define HSV(p) \ - evas_color_rgb_to_hsv(R(p), G(p), B(p), &h, &s, &v); \ - hi = 20 * (h / 360.0); \ - si = 20 * s; \ - vi = 20 * v; \ - if (si < 2) hi = 25; +#define G(v) (((v) >> 8) & 0xff) +#define B(v) (((v)) & 0xff) +#define HSV(p) \ + evas_color_rgb_to_hsv(R(p), G(p), B(p), &h, &s, &v); \ + hi = 20 * (h / 360.0); \ + si = 20 * s; \ + vi = 20 * v; \ + if (si < 2) hi = 25; #define SAVEHSV(h, s, v) \ - id[n++] = 'a' + h; \ - id[n++] = 'a' + v; \ - id[n++] = 'a' + s; + id[n++] = 'a' + h; \ + id[n++] = 'a' + v; \ + id[n++] = 'a' + s; #define SAVEX(x) \ - id[n++] = 'a' + x; -#if 0 + id[n++] = 'a' + x; +#if 0 HSV(data3[0]); SAVEHSV(hi, si, vi); for (i = 0; i < 4; i++) @@ -448,7 +465,7 @@ HSV(data1[pat1[i]]); SAVEHSV(hi, si, vi); } -#else +#else HSV(data3[0]); SAVEX(hi); for (i = 0; i < 4; i++) @@ -485,7 +502,7 @@ HSV(data1[pat1[i]]); SAVEX(si); } -#endif +#endif id[n++] = 0; eet_write(ef, "/thumbnail/sort_id", id, n, 1); free(data3); @@ -494,24 +511,26 @@ } free(data1); } - eet_close(ef); - } - } - } - - /* will free all */ - if (edje) evas_object_del(edje); - if (ee_im) ecore_evas_free(ee_im); - else if (im) evas_object_del(im); - ecore_evas_free(ee); - eet_clearcache(); + eet_close(ef); + } + } + } + + /* will free all */ + if (edje) evas_object_del(edje); + if (ee_im) ecore_evas_free(ee_im); + else if (im) + evas_object_del(im); + ecore_evas_free(ee); + eet_clearcache(); } /* send back path to thumb */ ecore_ipc_server_send(_e_ipc_server, 5, 2, eth->objid, 0, 0, buf, strlen(buf) + 1); } static char * -_e_thumb_file_id(char *file, char *key) +_e_thumb_file_id(char *file, + char *key) { char s[64]; const char *chmap = "0123456789abcdef"; @@ -524,8 +543,8 @@ len++; if (key) { - key += strlen(key); - len++; + key += strlen(key); + len++; } buf = alloca(len); @@ -533,12 +552,13 @@ if (key) strcpy((char *)(buf + lenf + 1), key); e_sha1_sum(buf, len, id); - + for (i = 0; i < 20; i++) { - s[(i * 2) + 0] = chmap[(id[i] >> 4) & 0xf]; - s[(i * 2) + 1] = chmap[(id[i] ) & 0xf]; + s[(i * 2) + 0] = chmap[(id[i] >> 4) & 0xf]; + s[(i * 2) + 1] = chmap[(id[i]) & 0xf]; } s[(i * 2)] = 0; return strdup(s); } + |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:40:00
|
Log: just set to 0 instead of subtracting to 0 Author: discomfitor Date: 2010-12-22 14:39:53 -0800 (Wed, 22 Dec 2010) New Revision: 55703 Trac: http://trac.enlightenment.org/e/changeset/55703 Modified: trunk/e/src/bin/e_toolbar.c Modified: trunk/e/src/bin/e_toolbar.c =================================================================== --- trunk/e/src/bin/e_toolbar.c 2010-12-22 22:36:13 UTC (rev 55702) +++ trunk/e/src/bin/e_toolbar.c 2010-12-22 22:39:53 UTC (rev 55703) @@ -236,7 +236,7 @@ tbar->x = 0; tbar->w = 32; tbar->h = tbar->fwin->h; - tbar->y = (tbar->fwin->h - tbar->h); + tbar->y = 0; break; case E_GADCON_ORIENT_RIGHT: tbar->y = 0; |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:53:37
|
Log: avoid null deref Author: discomfitor Date: 2010-12-22 14:53:30 -0800 (Wed, 22 Dec 2010) New Revision: 55710 Trac: http://trac.enlightenment.org/e/changeset/55710 Modified: trunk/e/src/bin/e_border.c Modified: trunk/e/src/bin/e_border.c =================================================================== --- trunk/e/src/bin/e_border.c 2010-12-22 22:51:32 UTC (rev 55709) +++ trunk/e/src/bin/e_border.c 2010-12-22 22:53:30 UTC (rev 55710) @@ -6634,7 +6634,7 @@ bd->y = zy + zh - bd->h; // <-- - if (e_container_zone_at_point_get(bd->zone->container, bd->x, bd->y)) + if (bd->zone && e_container_zone_at_point_get(bd->zone->container, bd->x, bd->y)) { bd->changes.pos = 1; bd->placed = 1; |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:54:30
|
Log: avoid null deref Author: discomfitor Date: 2010-12-22 14:54:22 -0800 (Wed, 22 Dec 2010) New Revision: 55711 Trac: http://trac.enlightenment.org/e/changeset/55711 Modified: trunk/e/src/bin/e_desklock.c Modified: trunk/e/src/bin/e_desklock.c =================================================================== --- trunk/e/src/bin/e_desklock.c 2010-12-22 22:53:30 UTC (rev 55710) +++ trunk/e/src/bin/e_desklock.c 2010-12-22 22:54:22 UTC (rev 55711) @@ -385,7 +385,7 @@ E_Desklock_Popup_Data *edp; E_Event_Desklock *ev; - if ((!edd) && (!_e_custom_desklock_exe)) return; + if ((!edd) || (!_e_custom_desklock_exe)) return; if (e_config->desklock_use_custom_desklock) { |
From: Enlightenment S. <no-...@en...> - 2010-12-22 22:56:03
|
Log: avoid two null derefs Author: discomfitor Date: 2010-12-22 14:55:55 -0800 (Wed, 22 Dec 2010) New Revision: 55712 Trac: http://trac.enlightenment.org/e/changeset/55712 Modified: trunk/e/src/bin/e_gadcon.c Modified: trunk/e/src/bin/e_gadcon.c =================================================================== --- trunk/e/src/bin/e_gadcon.c 2010-12-22 22:54:22 UTC (rev 55711) +++ trunk/e/src/bin/e_gadcon.c 2010-12-22 22:55:55 UTC (rev 55712) @@ -4331,7 +4331,7 @@ { lc_moving->state = E_LAYOUT_ITEM_CONTAINER_STATE_POS_LOCKED; _e_gadcon_layout_smart_gadcons_position_static(sd, list); - LC_FREE(lc_back); + if (lc_back) LC_FREE(lc_back); } else if (lc_moving->state == E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MAX_END_INC) { @@ -4396,7 +4396,7 @@ { lc_moving->state = E_LAYOUT_ITEM_CONTAINER_STATE_POS_LOCKED; _e_gadcon_layout_smart_gadcons_position_static(sd, list); - LC_FREE(lc_back); + if (lc_back) LC_FREE(lc_back); } if (bi_moving) |
From: Enlightenment S. <no-...@en...> - 2010-12-22 23:02:08
|
Log: again with the tabs! ecrustified! Author: discomfitor Date: 2010-12-22 15:02:00 -0800 (Wed, 22 Dec 2010) New Revision: 55713 Trac: http://trac.enlightenment.org/e/changeset/55713 Modified: trunk/e/src/bin/e_zone.c Modified: trunk/e/src/bin/e_zone.c =================================================================== --- trunk/e/src/bin/e_zone.c 2010-12-22 22:55:55 UTC (rev 55712) +++ trunk/e/src/bin/e_zone.c 2010-12-22 23:02:00 UTC (rev 55713) @@ -5,22 +5,45 @@ */ static void _e_zone_free(E_Zone *zone); -static void _e_zone_cb_bg_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info); -static void _e_zone_cb_bg_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info); -static void _e_zone_event_zone_desk_count_set_free(void *data, void *ev); -static Eina_Bool _e_zone_cb_mouse_in(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_mouse_out(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_mouse_down(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_mouse_up(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_mouse_move(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_desk_after_show(void *data, int type, void *event); -static Eina_Bool _e_zone_cb_edge_timer(void *data); -static void _e_zone_event_move_resize_free(void *data, void *ev); -static void _e_zone_event_add_free(void *data, void *ev); -static void _e_zone_event_del_free(void *data, void *ev); -static void _e_zone_object_del_attach(void *o); -static E_Zone_Edge _e_zone_detect_edge(E_Zone *zone, Ecore_X_Window win); -static void _e_zone_edge_move_resize(E_Zone *zone); +static void _e_zone_cb_bg_mouse_down(void *data, + Evas *evas, + Evas_Object *obj, + void *event_info); +static void _e_zone_cb_bg_mouse_up(void *data, + Evas *evas, + Evas_Object *obj, + void *event_info); +static void _e_zone_event_zone_desk_count_set_free(void *data, + void *ev); +static Eina_Bool _e_zone_cb_mouse_in(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_mouse_out(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_mouse_down(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_mouse_up(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_mouse_move(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_desk_after_show(void *data, + int type, + void *event); +static Eina_Bool _e_zone_cb_edge_timer(void *data); +static void _e_zone_event_move_resize_free(void *data, + void *ev); +static void _e_zone_event_add_free(void *data, + void *ev); +static void _e_zone_event_del_free(void *data, + void *ev); +static void _e_zone_object_del_attach(void *o); +static E_Zone_Edge _e_zone_detect_edge(E_Zone *zone, + Ecore_X_Window win); +static void _e_zone_edge_move_resize(E_Zone *zone); EAPI int E_EVENT_ZONE_DESK_COUNT_SET = 0; EAPI int E_EVENT_POINTER_WARP = 0; @@ -63,9 +86,9 @@ { Evas_Object *o; char name[256]; - + if (zone->black_ecore_evas) return; - zone->black_ecore_evas = + zone->black_ecore_evas = e_canvas_new(e_config->evas_engine_zone, zone->container->win, zone->x, zone->y, 1, 1, 1, 1, &(zone->black_win)); e_canvas_add(zone->black_ecore_evas); @@ -100,8 +123,8 @@ if (!zone->black_ecore_evas) return; if (zone->black_need == 1) { - ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); - ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); + ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); + ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); } } @@ -112,13 +135,19 @@ if (!zone->black_ecore_evas) return; if (zone->black_need == 0) { - ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); - ecore_evas_resize(zone->black_ecore_evas, 1, 1); + ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); + ecore_evas_resize(zone->black_ecore_evas, 1, 1); } } EAPI E_Zone * -e_zone_new(E_Container *con, int num, int id, int x, int y, int w, int h) +e_zone_new(E_Container *con, + int num, + int id, + int x, + int y, + int w, + int h) { E_Zone *zone; Evas_Object *o; @@ -138,27 +167,27 @@ zone->id = id; e_zone_useful_geometry_dirty(zone); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN, _e_zone_cb_mouse_in, zone)); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT, _e_zone_cb_mouse_out, zone)); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, _e_zone_cb_mouse_down, zone)); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, _e_zone_cb_mouse_up, zone)); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, _e_zone_cb_mouse_move, zone)); - zone->handlers = + zone->handlers = eina_list_append(zone->handlers, ecore_event_handler_add(E_EVENT_DESK_AFTER_SHOW, _e_zone_cb_desk_after_show, zone)); @@ -187,16 +216,16 @@ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _e_zone_cb_bg_mouse_up, zone); /* TODO: config the ecore_evas type. */ - + zone->desk_x_count = 0; zone->desk_y_count = 0; zone->desk_x_current = 0; zone->desk_y_current = 0; e_zone_desk_count_set(zone, e_config->zone_desks_x_count, - e_config->zone_desks_y_count); + e_config->zone_desks_y_count); e_object_del_attach_func_set(E_OBJECT(zone), _e_zone_object_del_attach); - + _e_zone_black_new(zone); ev = E_NEW(E_Event_Zone_Add, 1); @@ -208,7 +237,8 @@ } EAPI void -e_zone_name_set(E_Zone *zone, const char *name) +e_zone_name_set(E_Zone *zone, + const char *name) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); @@ -218,7 +248,9 @@ } EAPI void -e_zone_move(E_Zone *zone, int x, int y) +e_zone_move(E_Zone *zone, + int x, + int y) { E_Event_Zone_Move_Resize *ev; @@ -243,13 +275,15 @@ e_zone_bg_reconfigure(zone); if (zone->black_need > 0) { - ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); - ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); + ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); + ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); } } EAPI void -e_zone_resize(E_Zone *zone, int w, int h) +e_zone_resize(E_Zone *zone, + int w, + int h) { E_Event_Zone_Move_Resize *ev; @@ -268,20 +302,24 @@ ev = E_NEW(E_Event_Zone_Move_Resize, 1); ev->zone = zone; e_object_ref(E_OBJECT(ev->zone)); - ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, + ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, _e_zone_event_move_resize_free, NULL); _e_zone_edge_move_resize(zone); e_zone_bg_reconfigure(zone); if (zone->black_need > 0) { - ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); - ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); + ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); + ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); } } EAPI void -e_zone_move_resize(E_Zone *zone, int x, int y, int w, int h) +e_zone_move_resize(E_Zone *zone, + int x, + int y, + int w, + int h) { E_Event_Zone_Move_Resize *ev; @@ -310,7 +348,7 @@ ev = E_NEW(E_Event_Zone_Move_Resize, 1); ev->zone = zone; e_object_ref(E_OBJECT(ev->zone)); - ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, + ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, _e_zone_event_move_resize_free, NULL); _e_zone_edge_move_resize(zone); @@ -318,13 +356,14 @@ e_zone_bg_reconfigure(zone); if (zone->black_need > 0) { - ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); - ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); + ecore_evas_move(zone->black_ecore_evas, zone->x, zone->y); + ecore_evas_resize(zone->black_ecore_evas, zone->w, zone->h); } -} +} EAPI void -e_zone_fullscreen_set(E_Zone *zone, int on) +e_zone_fullscreen_set(E_Zone *zone, + int on) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); @@ -332,14 +371,14 @@ if ((!zone->fullscreen) && (on)) { _e_zone_black_get(zone); - ecore_evas_show(zone->black_ecore_evas); - e_container_window_raise(zone->container, zone->black_win, 150); - zone->fullscreen = 1; + ecore_evas_show(zone->black_ecore_evas); + e_container_window_raise(zone->container, zone->black_win, 150); + zone->fullscreen = 1; } else if ((zone->fullscreen) && (!on)) { - ecore_evas_hide(zone->black_ecore_evas); - zone->fullscreen = 0; + ecore_evas_hide(zone->black_ecore_evas); + zone->fullscreen = 0; _e_zone_black_unget(zone); } } @@ -354,14 +393,14 @@ E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); if (!starting) { - int x, y; + int x, y; - ecore_x_pointer_xy_get(con->win, &x, &y); - EINA_LIST_FOREACH(con->zones, l, zone) - { - if (E_INSIDE(x, y, zone->x, zone->y, zone->w, zone->h)) - return zone; - } + ecore_x_pointer_xy_get(con->win, &x, &y); + EINA_LIST_FOREACH(con->zones, l, zone) + { + if (E_INSIDE(x, y, zone->x, zone->y, zone->w, zone->h)) + return zone; + } } if (!con->zones) return NULL; return (E_Zone *)eina_list_data_get(con->zones); @@ -377,7 +416,9 @@ } EAPI void -e_zone_flip_coords_handle(E_Zone *zone, int x, int y) +e_zone_flip_coords_handle(E_Zone *zone, + int x, + int y) { E_Event_Zone_Edge *zev; E_Binding_Edge *bind; @@ -395,20 +436,20 @@ /* if we have only 1 row we can flip up/down even if we have xinerama */ if (eina_list_count(zone->container->zones) > 1) { - Eina_List *zones; - E_Zone *next_zone; - int cx, cy; + Eina_List *zones; + E_Zone *next_zone; + int cx, cy; - zones = zone->container->zones; - next_zone = (E_Zone *)eina_list_data_get(zones); - cx = next_zone->x; - cy = next_zone->y; - zones = eina_list_next(zones); - EINA_LIST_FOREACH(eina_list_next(zones), zones, next_zone) - { - if (next_zone->x != cx) one_col = 0; - if (next_zone->y != cy) one_row = 0; - } + zones = zone->container->zones; + next_zone = (E_Zone *)eina_list_data_get(zones); + cx = next_zone->x; + cy = next_zone->y; + zones = eina_list_next(zones); + EINA_LIST_FOREACH(eina_list_next(zones), zones, next_zone) + { + if (next_zone->x != cx) one_col = 0; + if (next_zone->y != cy) one_row = 0; + } } if (eina_list_count(zone->container->manager->containers) > 1) goto noflip; @@ -424,93 +465,103 @@ edge = E_ZONE_EDGE_LEFT; else { - noflip: +noflip: - if (zone->flip.es) - e_shelf_toggle(zone->flip.es, 0); - zone->flip.es = NULL; - return; + if (zone->flip.es) + e_shelf_toggle(zone->flip.es, 0); + zone->flip.es = NULL; + return; } EINA_LIST_FOREACH(e_shelf_list(), l, es) { - if (es->zone != zone) continue; - switch(es->gadcon->orient) - { - case E_GADCON_ORIENT_TOP: - case E_GADCON_ORIENT_CORNER_TL: - case E_GADCON_ORIENT_CORNER_TR: - if (edge == E_ZONE_EDGE_TOP) ok = 1; - break; - case E_GADCON_ORIENT_BOTTOM: - case E_GADCON_ORIENT_CORNER_BL: - case E_GADCON_ORIENT_CORNER_BR: - if (edge == E_ZONE_EDGE_BOTTOM) ok = 1; - break; - case E_GADCON_ORIENT_LEFT: - case E_GADCON_ORIENT_CORNER_LT: - case E_GADCON_ORIENT_CORNER_LB: - if (edge == E_ZONE_EDGE_LEFT) ok = 1; - break; - case E_GADCON_ORIENT_RIGHT: - case E_GADCON_ORIENT_CORNER_RT: - case E_GADCON_ORIENT_CORNER_RB: - if (edge == E_ZONE_EDGE_RIGHT) ok = 1; - break; - default: - ok = 0; - break; - } + if (es->zone != zone) continue; + switch(es->gadcon->orient) + { + case E_GADCON_ORIENT_TOP: + case E_GADCON_ORIENT_CORNER_TL: + case E_GADCON_ORIENT_CORNER_TR: + if (edge == E_ZONE_EDGE_TOP) ok = 1; + break; - if (!ok) continue; - if (!E_INSIDE(x, y, es->x, es->y, es->w, es->h)) - continue; + case E_GADCON_ORIENT_BOTTOM: + case E_GADCON_ORIENT_CORNER_BL: + case E_GADCON_ORIENT_CORNER_BR: + if (edge == E_ZONE_EDGE_BOTTOM) ok = 1; + break; - if (zone->flip.es) - e_shelf_toggle(zone->flip.es, 0); + case E_GADCON_ORIENT_LEFT: + case E_GADCON_ORIENT_CORNER_LT: + case E_GADCON_ORIENT_CORNER_LB: + if (edge == E_ZONE_EDGE_LEFT) ok = 1; + break; - zone->flip.es = es; - e_shelf_toggle(es, 1); + case E_GADCON_ORIENT_RIGHT: + case E_GADCON_ORIENT_CORNER_RT: + case E_GADCON_ORIENT_CORNER_RB: + if (edge == E_ZONE_EDGE_RIGHT) ok = 1; + break; + + default: + ok = 0; + break; + } + + if (!ok) continue; + if (!E_INSIDE(x, y, es->x, es->y, es->w, es->h)) + continue; + + if (zone->flip.es) + e_shelf_toggle(zone->flip.es, 0); + + zone->flip.es = es; + e_shelf_toggle(es, 1); } switch(edge) { case E_ZONE_EDGE_LEFT: - if (E_ZONE_FLIP_LEFT(zone)) ok = 1; - break; + if (E_ZONE_FLIP_LEFT(zone)) ok = 1; + break; + case E_ZONE_EDGE_TOP: - if (E_ZONE_FLIP_UP(zone)) ok = 1; - break; + if (E_ZONE_FLIP_UP(zone)) ok = 1; + break; + case E_ZONE_EDGE_RIGHT: - if (E_ZONE_FLIP_RIGHT(zone)) ok = 1; - break; + if (E_ZONE_FLIP_RIGHT(zone)) ok = 1; + break; + case E_ZONE_EDGE_BOTTOM: - if (E_ZONE_FLIP_DOWN(zone)) ok = 1; - break; + if (E_ZONE_FLIP_DOWN(zone)) ok = 1; + break; + default: - ok = 0; - break; + ok = 0; + break; } if (!ok) return; bind = e_bindings_edge_get("desk_flip_in_direction", edge, 0); if (bind) { - zev = E_NEW(E_Event_Zone_Edge, 1); - zev->zone = zone; - zev->x = x; - zev->y = y; - zev->edge = edge; - zone->flip.ev = zev; - zone->flip.bind = bind; - zone->flip.switching = 1; - bind->timer = ecore_timer_add(((double) bind->delay), _e_zone_cb_edge_timer, zone); + zev = E_NEW(E_Event_Zone_Edge, 1); + zev->zone = zone; + zev->x = x; + zev->y = y; + zev->edge = edge; + zone->flip.ev = zev; + zone->flip.bind = bind; + zone->flip.switching = 1; + bind->timer = ecore_timer_add(((double)bind->delay), _e_zone_cb_edge_timer, zone); } } EAPI void -e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) +e_zone_desk_count_set(E_Zone *zone, + int x_count, + int y_count) { E_Desk **new_desks; E_Desk *desk, *new_desk; - E_Border *bd; + E_Border *bd; E_Event_Zone_Desk_Count_Set *ev; E_Border_List *bl; int x, y, xx, yy, moved, nx, ny; @@ -529,66 +580,66 @@ if (zone->desk_y_current >= yy) moved = 1; if (moved) { - nx = zone->desk_x_current; - ny = zone->desk_y_current; - if (zone->desk_x_current >= xx) nx = xx - 1; - if (zone->desk_y_current >= yy) ny = yy - 1; - e_desk_show(e_desk_at_xy_get(zone, nx, ny)); + nx = zone->desk_x_current; + ny = zone->desk_y_current; + if (zone->desk_x_current >= xx) nx = xx - 1; + if (zone->desk_y_current >= yy) ny = yy - 1; + e_desk_show(e_desk_at_xy_get(zone, nx, ny)); } new_desks = malloc(xx * yy * sizeof(E_Desk *)); for (x = 0; x < xx; x++) { - for (y = 0; y < yy; y++) - { - if ((x < zone->desk_x_count) && (y < zone->desk_y_count)) - desk = zone->desks[x + (y * zone->desk_x_count)]; - else - desk = e_desk_new(zone, x, y); - new_desks[x + (y * xx)] = desk; - } + for (y = 0; y < yy; y++) + { + if ((x < zone->desk_x_count) && (y < zone->desk_y_count)) + desk = zone->desks[x + (y * zone->desk_x_count)]; + else + desk = e_desk_new(zone, x, y); + new_desks[x + (y * xx)] = desk; + } } /* catch windoes that have fallen off the end if we got smaller */ if (xx < zone->desk_x_count) { - for (y = 0; y < zone->desk_y_count; y++) - { - new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)]; - for (x = xx; x < zone->desk_x_count; x++) - { - desk = zone->desks[x + (y * zone->desk_x_count)]; + for (y = 0; y < zone->desk_y_count; y++) + { + new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)]; + for (x = xx; x < zone->desk_x_count; x++) + { + desk = zone->desks[x + (y * zone->desk_x_count)]; - bl = e_container_border_list_first(zone->container); - while ((bd = e_container_border_list_next(bl))) - { - if (bd->desk == desk) - e_border_desk_set(bd, new_desk); - } - e_container_border_list_free(bl); - e_object_del(E_OBJECT(desk)); - } - } + bl = e_container_border_list_first(zone->container); + while ((bd = e_container_border_list_next(bl))) + { + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); + } + e_container_border_list_free(bl); + e_object_del(E_OBJECT(desk)); + } + } } if (yy < zone->desk_y_count) { - for (x = 0; x < zone->desk_x_count; x++) - { - new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)]; - for (y = yy; y < zone->desk_y_count; y++) - { - desk = zone->desks[x + (y * zone->desk_x_count)]; + for (x = 0; x < zone->desk_x_count; x++) + { + new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)]; + for (y = yy; y < zone->desk_y_count; y++) + { + desk = zone->desks[x + (y * zone->desk_x_count)]; - bl = e_container_border_list_first(zone->container); - while ((bd = e_container_border_list_next(bl))) - { - if (bd->desk == desk) - e_border_desk_set(bd, new_desk); - } - e_container_border_list_free(bl); - e_object_del(E_OBJECT(desk)); - } - } + bl = e_container_border_list_first(zone->container); + while ((bd = e_container_border_list_next(bl))) + { + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); + } + e_container_border_list_free(bl); + e_object_del(E_OBJECT(desk)); + } + } } if (zone->desks) free(zone->desks); zone->desks = new_desks; @@ -599,27 +650,29 @@ e_config->zone_desks_y_count = yy; e_config_save_queue(); - /* Cannot call desk_current_get until the zone desk counts have been set + /* Cannot call desk_current_get until the zone desk counts have been set * or else we end up with a "white background" because desk_current_get will * return NULL. */ desk = e_desk_current_get(zone); if (desk) { - desk->visible = 0; - e_desk_show(desk); + desk->visible = 0; + e_desk_show(desk); } ev = E_NEW(E_Event_Zone_Desk_Count_Set, 1); if (!ev) return; ev->zone = zone; e_object_ref(E_OBJECT(ev->zone)); - ecore_event_add(E_EVENT_ZONE_DESK_COUNT_SET, ev, + ecore_event_add(E_EVENT_ZONE_DESK_COUNT_SET, ev, _e_zone_event_zone_desk_count_set_free, NULL); } EAPI void -e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count) +e_zone_desk_count_get(E_Zone *zone, + int *x_count, + int *y_count) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); @@ -629,7 +682,9 @@ } EAPI void -e_zone_desk_flip_by(E_Zone *zone, int dx, int dy) +e_zone_desk_flip_by(E_Zone *zone, + int dx, + int dy) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); @@ -640,7 +695,9 @@ } EAPI void -e_zone_desk_flip_to(E_Zone *zone, int x, int y) +e_zone_desk_flip_to(E_Zone *zone, + int x, + int y) { E_Desk *desk; @@ -649,29 +706,32 @@ if (e_config->desk_flip_wrap) { - x = x % zone->desk_x_count; - y = y % zone->desk_y_count; - if (x < 0) x += zone->desk_x_count; - if (y < 0) y += zone->desk_y_count; + x = x % zone->desk_x_count; + y = y % zone->desk_y_count; + if (x < 0) x += zone->desk_x_count; + if (y < 0) y += zone->desk_y_count; } else { - if (x < 0) x = 0; - else if (x >= zone->desk_x_count) x = zone->desk_x_count - 1; - if (y < 0) y = 0; - else if (y >= zone->desk_y_count) y = zone->desk_y_count - 1; + if (x < 0) x = 0; + else if (x >= zone->desk_x_count) + x = zone->desk_x_count - 1; + if (y < 0) y = 0; + else if (y >= zone->desk_y_count) + y = zone->desk_y_count - 1; } desk = e_desk_at_xy_get(zone, x, y); if (desk) e_desk_show(desk); } EAPI void -e_zone_desk_linear_flip_by(E_Zone *zone, int dx) +e_zone_desk_linear_flip_by(E_Zone *zone, + int dx) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); - dx = zone->desk_x_current + + dx = zone->desk_x_current + (zone->desk_y_current * zone->desk_x_count) + dx; dx = dx % (zone->desk_x_count * zone->desk_y_count); while (dx < 0) @@ -680,7 +740,8 @@ } EAPI void -e_zone_desk_linear_flip_to(E_Zone *zone, int x) +e_zone_desk_linear_flip_to(E_Zone *zone, + int x) { int y; @@ -702,24 +763,24 @@ EINA_LIST_FOREACH(e_manager_list(), l, man) { - EINA_LIST_FOREACH(man->containers, ll, con) - { - EINA_LIST_FOREACH(con->zones, lll, zone) - { - if (zone->edge.left) ecore_x_window_show(zone->edge.left); - if (zone->edge.right) ecore_x_window_show(zone->edge.right); - if (zone->edge.top) ecore_x_window_show(zone->edge.top); - if (zone->edge.bottom) ecore_x_window_show(zone->edge.bottom); - if (zone->corner.left_top) ecore_x_window_show(zone->corner.left_top); - if (zone->corner.top_left) ecore_x_window_show(zone->corner.top_left); - if (zone->corner.top_right) ecore_x_window_show(zone->corner.top_right); - if (zone->corner.right_top) ecore_x_window_show(zone->corner.right_top); - if (zone->corner.right_bottom) ecore_x_window_show(zone->corner.right_bottom); - if (zone->corner.bottom_right) ecore_x_window_show(zone->corner.bottom_right); - if (zone->corner.bottom_left) ecore_x_window_show(zone->corner.bottom_left); - if (zone->corner.left_bottom) ecore_x_window_show(zone->corner.left_bottom); - } - } + EINA_LIST_FOREACH(man->containers, ll, con) + { + EINA_LIST_FOREACH(con->zones, lll, zone) + { + if (zone->edge.left) ecore_x_window_show(zone->edge.left); + if (zone->edge.right) ecore_x_window_show(zone->edge.right); + if (zone->edge.top) ecore_x_window_show(zone->edge.top); + if (zone->edge.bottom) ecore_x_window_show(zone->edge.bottom); + if (zone->corner.left_top) ecore_x_window_show(zone->corner.left_top); + if (zone->corner.top_left) ecore_x_window_show(zone->corner.top_left); + if (zone->corner.top_right) ecore_x_window_show(zone->corner.top_right); + if (zone->corner.right_top) ecore_x_window_show(zone->corner.right_top); + if (zone->corner.right_bottom) ecore_x_window_show(zone->corner.right_bottom); + if (zone->corner.bottom_right) ecore_x_window_show(zone->corner.bottom_right); + if (zone->corner.bottom_left) ecore_x_window_show(zone->corner.bottom_left); + if (zone->corner.left_bottom) ecore_x_window_show(zone->corner.left_bottom); + } + } } } @@ -733,24 +794,24 @@ EINA_LIST_FOREACH(e_manager_list(), l, man) { - EINA_LIST_FOREACH(man->containers, ll, con) - { - EINA_LIST_FOREACH(con->zones, lll, zone) - { - if (zone->edge.left) ecore_x_window_hide(zone->edge.left); - if (zone->edge.right) ecore_x_window_hide(zone->edge.right); - if (zone->edge.top) ecore_x_window_hide(zone->edge.top); - if (zone->edge.bottom) ecore_x_window_hide(zone->edge.bottom); - if (zone->corner.left_top) ecore_x_window_hide(zone->corner.left_top); - if (zone->corner.top_left) ecore_x_window_hide(zone->corner.top_left); - if (zone->corner.top_right) ecore_x_window_hide(zone->corner.top_right); - if (zone->corner.right_top) ecore_x_window_hide(zone->corner.right_top); - if (zone->corner.right_bottom) ecore_x_window_hide(zone->corner.right_bottom); - if (zone->corner.bottom_right) ecore_x_window_hide(zone->corner.bottom_right); - if (zone->corner.bottom_left) ecore_x_window_hide(zone->corner.bottom_left); - if (zone->corner.left_bottom) ecore_x_window_hide(zone->corner.left_bottom); - } - } + EINA_LIST_FOREACH(man->containers, ll, con) + { + EINA_LIST_FOREACH(con->zones, lll, zone) + { + if (zone->edge.left) ecore_x_window_hide(zone->edge.left); + if (zone->edge.right) ecore_x_window_hide(zone->edge.right); + if (zone->edge.top) ecore_x_window_hide(zone->edge.top); + if (zone->edge.bottom) ecore_x_window_hide(zone->edge.bottom); + if (zone->corner.left_top) ecore_x_window_hide(zone->corner.left_top); + if (zone->corner.top_left) ecore_x_window_hide(zone->corner.top_left); + if (zone->corner.top_right) ecore_x_window_hide(zone->corner.top_right); + if (zone->corner.right_top) ecore_x_window_hide(zone->corner.right_top); + if (zone->corner.right_bottom) ecore_x_window_hide(zone->corner.right_bottom); + if (zone->corner.bottom_right) ecore_x_window_hide(zone->corner.bottom_right); + if (zone->corner.bottom_left) ecore_x_window_hide(zone->corner.bottom_left); + if (zone->corner.left_bottom) ecore_x_window_hide(zone->corner.left_bottom); + } + } } } @@ -765,123 +826,131 @@ EINA_LIST_FOREACH(e_manager_list(), l, man) { - EINA_LIST_FOREACH(man->containers, ll, con) - { - EINA_LIST_FOREACH(con->zones, lll, zone) - { - cw = zone->w * E_ZONE_CORNER_RATIO; - ch = zone->h * E_ZONE_CORNER_RATIO; - switch (edge) - { - case E_ZONE_EDGE_NONE: - /* noop */ - break; - case E_ZONE_EDGE_LEFT: - if (!zone->edge.left) - { - zone->edge.left = ecore_x_window_input_new(con->win, - zone->x, zone->y + ch, 1, - zone->h - 2 * ch); - ecore_x_window_show(zone->edge.left); - } - break; - case E_ZONE_EDGE_RIGHT: - if (!zone->edge.right) - { - zone->edge.right = ecore_x_window_input_new(con->win, - zone->x + zone->w - 1, - zone->y + ch, 1, zone->h - 2 * ch); - ecore_x_window_show(zone->edge.right); - } - break; - case E_ZONE_EDGE_TOP: - if (!zone->edge.top) - { - zone->edge.top = ecore_x_window_input_new(con->win, - zone->x + 1 + cw, zone->y, - zone->w - 2 * cw - 2, 1); - ecore_x_window_show(zone->edge.top); - } - break; - case E_ZONE_EDGE_BOTTOM: - if (!zone->edge.bottom) - { - zone->edge.bottom = ecore_x_window_input_new(con->win, - zone->x + 1 + cw, zone->y + zone->h - 1, - zone->w - 2 - 2 * cw, 1); - ecore_x_window_show(zone->edge.bottom); - } - break; - case E_ZONE_EDGE_TOP_LEFT: - if (!zone->corner.left_top) - { - zone->corner.left_top = ecore_x_window_input_new(con->win, - zone->x, zone->y, 1, ch); - ecore_x_window_show(zone->corner.left_top); - } - if (!zone->corner.top_left) - { - zone->corner.top_left = ecore_x_window_input_new(con->win, - zone->x + 1, zone->y, cw, 1); - ecore_x_window_show(zone->corner.top_left); - } - break; - case E_ZONE_EDGE_TOP_RIGHT: - if (!zone->corner.top_right) - { - zone->corner.top_right = ecore_x_window_input_new(con->win, - zone->x + zone->w - cw - 2, - zone->y, cw, 1); - ecore_x_window_show(zone->corner.top_right); - } - if (!zone->corner.right_top) - { - zone->corner.right_top = ecore_x_window_input_new(con->win, - zone->x + zone->w - 1, - zone->y, 1, ch); - ecore_x_window_show(zone->corner.right_top); - } - break; - case E_ZONE_EDGE_BOTTOM_RIGHT: - if (!zone->corner.right_bottom) - { - zone->corner.right_bottom = ecore_x_window_input_new(con->win, - zone->x + zone->w - 1, - zone->y + zone->h - ch, 1, ch); - ecore_x_window_show(zone->corner.right_bottom); - } - if (!zone->corner.bottom_right) - { - zone->corner.bottom_right = ecore_x_window_input_new(con->win, - zone->x + zone->w - cw - 2, - zone->y + zone->h - 1, cw, 1); + EINA_LIST_FOREACH(man->containers, ll, con) + { + EINA_LIST_FOREACH(con->zones, lll, zone) + { + cw = zone->w * E_ZONE_CORNER_RATIO; + ch = zone->h * E_ZONE_CORNER_RATIO; + switch (edge) + { + case E_ZONE_EDGE_NONE: + /* noop */ + break; - ecore_x_window_show(zone->corner.bottom_right); - } - break; - case E_ZONE_EDGE_BOTTOM_LEFT: - if (!zone->corner.bottom_left) - { - zone->corner.bottom_left = ecore_x_window_input_new(con->win, - zone->x + 1, - zone->y + zone->h - 1, cw, 1); - ecore_x_window_show(zone->corner.bottom_left); - } - if (!zone->corner.left_bottom) - { - zone->corner.left_bottom = ecore_x_window_input_new(con->win, - zone->x, zone->y + zone->h - ch, - 1, ch); - ecore_x_window_show(zone->corner.left_bottom); - } - break; - } - if (e_config->fullscreen_flip) - e_zone_edge_win_layer_set(zone, 250); - else - e_zone_edge_win_layer_set(zone, 200); - } - } + case E_ZONE_EDGE_LEFT: + if (!zone->edge.left) + { + zone->edge.left = ecore_x_window_input_new(con->win, + zone->x, zone->y + ch, 1, + zone->h - 2 * ch); + ecore_x_window_show(zone->edge.left); + } + break; + + case E_ZONE_EDGE_RIGHT: + if (!zone->edge.right) + { + zone->edge.right = ecore_x_window_input_new(con->win, + zone->x + zone->w - 1, + zone->y + ch, 1, zone->h - 2 * ch); + ecore_x_window_show(zone->edge.right); + } + break; + + case E_ZONE_EDGE_TOP: + if (!zone->edge.top) + { + zone->edge.top = ecore_x_window_input_new(con->win, + zone->x + 1 + cw, zone->y, + zone->w - 2 * cw - 2, 1); + ecore_x_window_show(zone->edge.top); + } + break; + + case E_ZONE_EDGE_BOTTOM: + if (!zone->edge.bottom) + { + zone->edge.bottom = ecore_x_window_input_new(con->win, + zone->x + 1 + cw, zone->y + zone->h - 1, + zone->w - 2 - 2 * cw, 1); + ecore_x_window_show(zone->edge.bottom); + } + break; + + case E_ZONE_EDGE_TOP_LEFT: + if (!zone->corner.left_top) + { + zone->corner.left_top = ecore_x_window_input_new(con->win, + zone->x, zone->y, 1, ch); + ecore_x_window_show(zone->corner.left_top); + } + if (!zone->corner.top_left) + { + zone->corner.top_left = ecore_x_window_input_new(con->win, + zone->x + 1, zone->y, cw, 1); + ecore_x_window_show(zone->corner.top_left); + } + break; + + case E_ZONE_EDGE_TOP_RIGHT: + if (!zone->corner.top_right) + { + zone->corner.top_right = ecore_x_window_input_new(con->win, + zone->x + zone->w - cw - 2, + zone->y, cw, 1); + ecore_x_window_show(zone->corner.top_right); + } + if (!zone->corner.right_top) + { + zone->corner.right_top = ecore_x_window_input_new(con->win, + zone->x + zone->w - 1, + zone->y, 1, ch); + ecore_x_window_show(zone->corner.right_top); + } + break; + + case E_ZONE_EDGE_BOTTOM_RIGHT: + if (!zone->corner.right_bottom) + { + zone->corner.right_bottom = ecore_x_window_input_new(con->win, + zone->x + zone->w - 1, + zone->y + zone->h - ch, 1, ch); + ecore_x_window_show(zone->corner.right_bottom); + } + if (!zone->corner.bottom_right) + { + zone->corner.bottom_right = ecore_x_window_input_new(con->win, + zone->x + zone->w - cw - 2, + zone->y + zone->h - 1, cw, 1); + + ecore_x_window_show(zone->corner.bottom_right); + } + break; + + case E_ZONE_EDGE_BOTTOM_LEFT: + if (!zone->corner.bottom_left) + { + zone->corner.bottom_left = ecore_x_window_input_new(con->win, + zone->x + 1, + zone->y + zone->h - 1, cw, 1); + ecore_x_window_show(zone->corner.bottom_left); + } + if (!zone->corner.left_bottom) + { + zone->corner.left_bottom = ecore_x_window_input_new(con->win, + zone->x, zone->y + zone->h - ch, + 1, ch); + ecore_x_window_show(zone->corner.left_bottom); + } + break; + } + if (e_config->fullscreen_flip) + e_zone_edge_win_layer_set(zone, 250); + else + e_zone_edge_win_layer_set(zone, 200); + } + } } } @@ -895,63 +964,72 @@ EINA_LIST_FOREACH(e_manager_list(), l, man) { - EINA_LIST_FOREACH(man->containers, ll, con) - { - EINA_LIST_FOREACH(con->zones, lll, zone) - { - switch (edge) - { - case E_ZONE_EDGE_NONE: - /* noop */ - break; - case E_ZONE_EDGE_LEFT: - if (zone->edge.left) ecore_x_window_free(zone->edge.left); - zone->edge.left = 0; - break; - case E_ZONE_EDGE_RIGHT: - if (zone->edge.right) ecore_x_window_free(zone->edge.right); - zone->edge.right = 0; - break; - case E_ZONE_EDGE_TOP: - if (zone->edge.top) ecore_x_window_free(zone->edge.top); - zone->edge.top = 0; - break; - case E_ZONE_EDGE_BOTTOM: - if (zone->edge.bottom) ecore_x_window_free(zone->edge.bottom); - zone->edge.bottom = 0; - break; - case E_ZONE_EDGE_TOP_LEFT: - if (zone->corner.left_top) ecore_x_window_free(zone->corner.left_top); - if (zone->corner.top_left) ecore_x_window_free(zone->corner.top_left); - zone->corner.left_top = 0; - zone->corner.top_left = 0; - break; - case E_ZONE_EDGE_TOP_RIGHT: - if (zone->corner.top_right) ecore_x_window_free(zone->corner.top_right); - if (zone->corner.right_top) ecore_x_window_free(zone->corner.right_top); - zone->corner.top_right = 0; - zone->corner.right_top = 0; - break; - case E_ZONE_EDGE_BOTTOM_RIGHT: - if (zone->corner.right_bottom) ecore_x_window_free(zone->corner.right_bottom); - if (zone->corner.bottom_right) ecore_x_window_free(zone->corner.bottom_right); - zone->corner.right_bottom = 0; - zone->corner.bottom_right = 0; - break; - case E_ZONE_EDGE_BOTTOM_LEFT: - if (zone->corner.bottom_left) ecore_x_window_free(zone->corner.bottom_left); - if (zone->corner.left_bottom) ecore_x_window_free(zone->corner.left_bottom); - zone->corner.bottom_left = 0; - zone->corner.left_bottom = 0; - break; - } - } - } + EINA_LIST_FOREACH(man->containers, ll, con) + { + EINA_LIST_FOREACH(con->zones, lll, zone) + { + switch (edge) + { + case E_ZONE_EDGE_NONE: + /* noop */ + break; + + case E_ZONE_EDGE_LEFT: + if (zone->edge.left) ecore_x_window_free(zone->edge.left); + zone->edge.left = 0; + break; + + case E_ZONE_EDGE_RIGHT: + if (zone->edge.right) ecore_x_window_free(zone->edge.right); + zone->edge.right = 0; + break; + + case E_ZONE_EDGE_TOP: + if (zone->edge.top) ecore_x_window_free(zone->edge.top); + zone->edge.top = 0; + break; + + case E_ZONE_EDGE_BOTTOM: + if (zone->edge.bottom) ecore_x_window_free(zone->edge.bottom); + zone->edge.bottom = 0; + break; + + case E_ZONE_EDGE_TOP_LEFT: + if (zone->corner.left_top) ecore_x_window_free(zone->corner.left_top); + if (zone->corner.top_left) ecore_x_window_free(zone->corner.top_left); + zone->corner.left_top = 0; + zone->corner.top_left = 0; + break; + + case E_ZONE_EDGE_TOP_RIGHT: + if (zone->corner.top_right) ecore_x_window_free(zone->corner.top_right); + if (zone->corner.right_top) ecore_x_window_free(zone->corner.right_top); + zone->corner.top_right = 0; + zone->corner.right_top = 0; + break; + + case E_ZONE_EDGE_BOTTOM_RIGHT: + if (zone->corner.right_bottom) ecore_x_window_free(zone->corner.right_bottom); + if (zone->corner.bottom_right) ecore_x_window_free(zone->corner.bottom_right); + zone->corner.right_bottom = 0; + zone->corner.bottom_right = 0; + break; + + case E_ZONE_EDGE_BOTTOM_LEFT: + if (zone->corner.bottom_left) ecore_x_window_free(zone->corner.bottom_left); + if (zone->corner.left_bottom) ecore_x_window_free(zone->corner.left_bottom); + zone->corner.bottom_left = 0; + zone->corner.left_bottom = 0; + break; + } + } + } } } EAPI void -e_zone_edge_win_layer_set(E_Zone *zone, int layer) +e_zone_edge_win_layer_set(E_Zone *zone, + int layer) { if (zone->corner.left_bottom) e_container_window_raise(zone->container, zone->corner.left_bottom, layer); if (zone->corner.left_top) e_container_window_raise(zone->container, zone->corner.left_top, layer); @@ -982,25 +1060,25 @@ EINA_LIST_FOREACH(e_shelf_list(), l, shelf) { E_Config_Shelf_Desk *sd; - E_Gadcon_Orient orient; + E_Gadcon_Orient orient; Eina_List *ll; int skip_shelf = 0; - if (shelf->zone != zone) - continue; + if (shelf->zone != zone) + continue; - if (shelf->cfg) - { - if (shelf->cfg->overlap) - continue; - - if (shelf->cfg->autohide) - continue; - orient = shelf->cfg->orient; - } - else - orient = shelf->gadcon->orient; + if (shelf->cfg) + { + if (shelf->cfg->overlap) + continue; + if (shelf->cfg->autohide) + continue; + orient = shelf->cfg->orient; + } + else + orient = shelf->gadcon->orient; + if (shelf->cfg->desk_show_mode) { skip_shelf = 1; @@ -1017,39 +1095,43 @@ continue; } - switch (orient) - { - /* these are non-edje orientations */ - case E_GADCON_ORIENT_FLOAT: - case E_GADCON_ORIENT_HORIZ: - case E_GADCON_ORIENT_VERT: - break; - case E_GADCON_ORIENT_TOP: - case E_GADCON_ORIENT_CORNER_TL: - case E_GADCON_ORIENT_CORNER_TR: - if (y0 < shelf->h) - y0 = shelf->h; - break; - case E_GADCON_ORIENT_BOTTOM: - case E_GADCON_ORIENT_CORNER_BL: - case E_GADCON_ORIENT_CORNER_BR: - if (y1 > zone->h - shelf->h) - y1 = zone->h - shelf->h; - break; - break; - case E_GADCON_ORIENT_LEFT: - case E_GADCON_ORIENT_CORNER_LT: - case E_GADCON_ORIENT_CORNER_LB: - if (x0 < shelf->w) - x0 = shelf->w; - break; - case E_GADCON_ORIENT_RIGHT: - case E_GADCON_ORIENT_CORNER_RT: - case E_GADCON_ORIENT_CORNER_RB: - if (x1 > zone->w - shelf->w) - x1 = zone->w - shelf->w; - break; - } + switch (orient) + { + /* these are non-edje orientations */ + case E_GADCON_ORIENT_FLOAT: + case E_GADCON_ORIENT_HORIZ: + case E_GADCON_ORIENT_VERT: + break; + + case E_GADCON_ORIENT_TOP: + case E_GADCON_ORIENT_CORNER_TL: + case E_GADCON_ORIENT_CORNER_TR: + if (y0 < shelf->h) + y0 = shelf->h; + break; + + case E_GADCON_ORIENT_BOTTOM: + case E_GADCON_ORIENT_CORNER_BL: + case E_GADCON_ORIENT_CORNER_BR: + if (y1 > zone->h - shelf->h) + y1 = zone->h - shelf->h; + break; + break; + + case E_GADCON_ORIENT_LEFT: + case E_GADCON_ORIENT_CORNER_LT: + case E_GADCON_ORIENT_CORNER_LB: + if (x0 < shelf->w) + x0 = shelf->w; + break; + + case E_GADCON_ORIENT_RIGHT: + case E_GADCON_ORIENT_CORNER_RT: + case E_GADCON_ORIENT_CORNER_RB: + if (x1 > zone->w - shelf->w) + x1 = zone->w - shelf->w; + break; + } } zone->useful_geometry.x = zone->x + x0; @@ -1059,12 +1141,15 @@ zone->useful_geometry.dirty = 0; } - /** * Get (or calculate) the useful (or free, without any shelves) area. */ EAPI void -e_zone_useful_geometry_get(E_Zone *zone, int *x, int *y, int *w, int *h) +e_zone_useful_geometry_get(E_Zone *zone, + int *x, + int *y, + int *w, + int *h) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); @@ -1141,24 +1226,24 @@ if (zone->corner.bottom_left) ecore_x_window_free(zone->corner.bottom_left); /* Delete the object event callbacks */ - evas_object_event_callback_del(zone->bg_event_object, - EVAS_CALLBACK_MOUSE_DOWN, - _e_zone_cb_bg_mouse_down); - evas_object_event_callback_del(zone->bg_event_object, - EVAS_CALLBACK_MOUSE_UP, - _e_zone_cb_bg_mouse_up); + evas_object_event_callback_del(zone->bg_event_object, + EVAS_CALLBACK_MOUSE_DOWN, + _e_zone_cb_bg_mouse_down); + evas_object_event_callback_del(zone->bg_event_object, + EVAS_CALLBACK_MOUSE_UP, + _e_zone_cb_bg_mouse_up); if (zone->black_ecore_evas) { - e_canvas_del(zone->black_ecore_evas); - ecore_evas_free(zone->black_ecore_evas); + e_canvas_del(zone->black_ecore_evas); + ecore_evas_free(zone->black_ecore_evas); } if (zone->cur_mouse_action) { - e_object_unref(E_OBJECT(zone->cur_mouse_action)); - zone->cur_mouse_action = NULL; + e_object_unref(E_OBJECT(zone->cur_mouse_action)); + zone->cur_mouse_action = NULL; } - + /* remove handlers */ E_FREE_LIST(zone->handlers, ecore_event_handler_del); @@ -1179,18 +1264,21 @@ /* free desks */ for (x = 0; x < zone->desk_x_count; x++) { - for (y = 0; y < zone->desk_y_count; y++) - e_object_del(E_OBJECT(zone->desks[x + (y * zone->desk_x_count)])); + for (y = 0; y < zone->desk_y_count; y++) + e_object_del(E_OBJECT(zone->desks[x + (y * zone->desk_x_count)])); } free(zone->desks); - + _e_zone_black_free(zone); - + free(zone); } static void -_e_zone_cb_bg_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_e_zone_cb_bg_mouse_down(void *data, + Evas *evas __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) { E_Zone *zone; @@ -1199,62 +1287,66 @@ if (!zone->cur_mouse_action) { - if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_DOWN) - { - Ecore_Event_Mouse_Button *ev2; + if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_DOWN) + { + Ecore_Event_Mouse_Button *ev2; - ev2 = ecore_event_current_event_get(); - zone->cur_mouse_action = - e_bindings_mouse_down_event_handle(E_BINDING_CONTEXT_ZONE, - E_OBJECT(zone), ev2); - if (zone->cur_mouse_action) - { - if ((!zone->cur_mouse_action->func.end_mouse) && - (!zone->cur_mouse_action->func.end)) - zone->cur_mouse_action = NULL; - if (zone->cur_mouse_action) - e_object_ref(E_OBJECT(zone->cur_mouse_action)); - } - } + ev2 = ecore_event_current_event_get(); + zone->cur_mouse_action = + e_bindings_mouse_down_event_handle(E_BINDING_CONTEXT_ZONE, + E_OBJECT(zone), ev2); + if (zone->cur_mouse_action) + { + if ((!zone->cur_mouse_action->func.end_mouse) && + (!zone->cur_mouse_action->func.end)) + zone->cur_mouse_action = NULL; + if (zone->cur_mouse_action) + e_object_ref(E_OBJECT(zone->cur_mouse_action)); + } + } } } static void -_e_zone_cb_bg_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_e_zone_cb_bg_mouse_up(void *data, + Evas *evas __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) { E_Zone *zone; zone = data; if (zone->cur_mouse_action) { - if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_UP) - { - Ecore_Event_Mouse_Button *ev2; + if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_UP) + { + Ecore_Event_Mouse_Button *ev2; - ev2 = ecore_event_current_event_get(); - if (zone->cur_mouse_action->func.end_mouse) - zone->cur_mouse_action->func.end_mouse(E_OBJECT(zone), "", ev2); - else if (zone->cur_mouse_action->func.end) - zone->cur_mouse_action->func.end(E_OBJECT(zone), ""); - } - e_object_unref(E_OBJECT(zone->cur_mouse_action)); - zone->cur_mouse_action = NULL; + ev2 = ecore_event_current_event_get(); + if (zone->cur_mouse_action->func.end_mouse) + zone->cur_mouse_action->func.end_mouse(E_OBJECT(zone), "", ev2); + else if (zone->cur_mouse_action->func.end) + zone->cur_mouse_action->func.end(E_OBJECT(zone), ""); + } + e_object_unref(E_OBJECT(zone->cur_mouse_action)); + zone->cur_mouse_action = NULL; } else { - if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_UP) - { - Ecore_Event_Mouse_Button *ev2; + if (ecore_event_current_type_get() == ECORE_EVENT_MOUSE_BUTTON_UP) + { + Ecore_Event_Mouse_Button *ev2; - ev2 = ecore_event_current_event_get(); - e_bindings_mouse_up_event_handle(E_BINDING_CONTEXT_ZONE, - E_OBJECT(zone), ev2); - } + ev2 = ecore_event_current_event_get(); + e_bindings_mouse_up_event_handle(E_BINDING_CONTEXT_ZONE, + E_OBJECT(zone), ev2); + } } } static void -_e_zone_event_zone_desk_count_set_free(void *data __UNUSED__, void *ev) +_e_zone_event_zone_desk_count_set_free(void *data __UNUSED__, + void *ev) { E_Event_Zone_Desk_Count_Set *e; @@ -1264,7 +1356,9 @@ } static Eina_Bool -_e_zone_cb_mouse_in(void *data, int type __UNUSED__, void *event) +_e_zone_cb_mouse_in(void *data, + int type __UNUSED__, + void *event) { Ecore_X_Event_Mouse_In *ev; E_Event_Zone_Edge *zev; @@ -1290,7 +1384,9 @@ } static Eina_Bool -_e_zone_cb_mouse_out(void *data, int type __UNUSED__, void *event) +_e_zone_cb_mouse_out(void *data, + int type __UNUSED__, + void *event) { Ecore_X_Event_Mouse_Out *ev; E_Event_Zone_Edge *zev; @@ -1315,7 +1411,9 @@ } static Eina_Bool -_e_zone_cb_mouse_down(void *data, int type __UNUSED__, void *event) +_e_zone_cb_mouse_down(void *data, + int type __UNUSED__, + void *event) { Ecore_Event_Mouse_Button *ev; E_Event_Zone_Edge *zev; @@ -1340,7 +1438,9 @@ } static Eina_Bool -_e_zone_cb_mouse_up(void *data, int type __UNUSED__, void *event) +_e_zone_cb_mouse_up(void *data, + int type __UNUSED__, + void *event) { Ecore_Event_Mouse_Button *ev; E_Event_Zone_Edge *zev; @@ -1365,7 +1465,9 @@ } static Eina_Bool -_e_zone_cb_mouse_move(void *data, int type __UNUSED__, void *event) +_e_zone_cb_mouse_move(void *data, + int type __UNUSED__, + void *event) { Ecore_Event_Mouse_Move *ev; E_Event_Zone_Edge *zev; @@ -1389,7 +1491,9 @@ } static Eina_Bool -_e_zone_cb_desk_after_show(void *data, int type __UNUSED__, void *event) +_e_zone_cb_desk_after_show(void *data, + int type __UNUSED__, + void *event) { E_Event_Desk_Show *ev; E_Zone *zone; @@ -1412,8 +1516,8 @@ act = e_action_find(zone->flip.bind->action); if (!act) { - E_FREE(zone->flip.ev); - return ECORE_CALLBACK_CANCEL; + E_FREE(zone->flip.ev); + return ECORE_CALLBACK_CANCEL; } if (act->func.go_edge) @@ -1428,7 +1532,8 @@ } static void -_e_zone_event_move_resize_free(void *data __UNUSED__, void *ev) +_e_zone_event_move_resize_free(void *data __UNUSED__, + void *ev) { E_Event_Zone_Move_Resize *e; @@ -1438,7 +1543,8 @@ } static void -_e_zone_event_add_free(void *data __UNUSED__, void *ev) +_e_zone_event_add_free(void *data __UNUSED__, + void *ev) { E_Event_Zone_Add *e; @@ -1448,7 +1554,8 @@ } static void -_e_zone_event_del_free(void *data __UNUSED__, void *ev) +_e_zone_event_del_free(void *data __UNUSED__, + void *ev) { E_Event_Zone_Del *e; @@ -1472,7 +1579,8 @@ } static E_Zone_Edge -_e_zone_detect_edge(E_Zone *zone, Ecore_X_Window win) +_e_zone_detect_edge(E_Zone *zone, + Ecore_X_Window win) { E_Zone_Edge edge = E_ZONE_EDGE_NONE; @@ -1485,16 +1593,16 @@ else if (win == zone->edge.bottom) edge = E_ZONE_EDGE_BOTTOM; else if ((win == zone->corner.left_top) || - (win == zone->corner.top_left)) + (win == zone->corner.top_left)) edge = E_ZONE_EDGE_TOP_LEFT; else if ((win == zone->corner.right_top) || - (win == zone->corner.top_right)) + (win == zone->corner.top_right)) edge = E_ZONE_EDGE_TOP_RIGHT; else if ((win == zone->corner.right_bottom) || - (win == zone->corner.bottom_right)) + (win == zone->corner.bottom_right)) edge = E_ZONE_EDGE_BOTTOM_RIGHT; else if ((win == zone->corner.left_bottom) || - (win == zone->corner.bottom_left)) + (win == zone->corner.bottom_left)) edge = E_ZONE_EDGE_BOTTOM_LEFT; return edge; } @@ -1510,41 +1618,42 @@ if (zone->corner.left_bottom) ecore_x_window_move_resize(zone->corner.left_bottom, - zone->x, zone->y + zone->h - ch, 1, ch); + zone->x, zone->y + zone->h - ch, 1, ch); if (zone->edge.left) ecore_x_window_move_resize(zone->edge.left, - zone->x, zone->y + ch, 1, zone->h - 2 * ch); + zone->x, zone->y + ch, 1, zone->h - 2 * ch); if (zone->corner.left_top) ecore_x_window_move_resize(zone->corner.left_top, - zone->x, zone->y, 1, ch); + zone->x, zone->y, 1, ch); if (zone->corner.top_left) ecore_x_window_move_resize(zone->corner.top_left, - zone->x + 1, zone->y, cw, 1); + zone->x + 1, zone->y, cw, 1); if (zone->edge.top) ecore_x_window_move_resize(zone->edge.top, - zone->x + 1 + cw, zone->y, zone->w - 2 * cw - 2, 1); + zone->x + 1 + cw, zone->y, zone->w - 2 * cw - 2, 1); if (zone->corner.top_right) ecore_x_window_move_resize(zone->corner.top_right, - zone->x + zone->w - cw - 2, zone->y, cw, 1); + zone->x + zone->w - cw - 2, zone->y, cw, 1); if (zone->corner.right_top) ecore_x_window_move_resize(zone->corner.right_top, - zone->x + zone->w - 1, zone->y, 1, ch); + zone->x + zone->w - 1, zone->y, 1, ch); if (zone->edge.right) ecore_x_window_move_resize(zone->edge.right, - zone->x + zone->w - 1, zone->y + ch, 1, zone->h - 2 * ch); + zone->x + zone->w - 1, zone->y + ch, 1, zone->h - 2 * ch); if (zone->corner.right_bottom) ecore_x_window_move_resize(zone->corner.right_bottom, - zone->x + zone->w - 1, zone->y + zone->h - ch, 1, ch); + zone->x + zone->w - 1, zone->y + zone->h - ch, 1, ch); if (zone->corner.bottom_right) ecore_x_window_move_resize(zone->corner.bottom_right, - zone->x + 1, zone->y + zone->h - 1, cw, 1); + zone->x + 1, zone->y + zone->h - 1, cw, 1); if (zone->edge.bottom) ecore_x_window_move_resize(zone->edge.bottom, - zone->x + 1 + cw, zone->y + zone->h - 1, zone->w - 2 - 2 * cw, 1); + zone->x + 1 + cw, zone->y + zone->h - 1, zone->w - 2 - 2 * cw, 1); if (zone->corner.bottom_left) ecore_x_window_move_resize(zone->corner.bottom_left, - zone->x + zone->w - cw - 2, zone->y + zone->h - 1, cw, 1); + zone->x + zone->w - cw - 2, zone->y + zone->h - 1, cw, 1); } + |
From: Enlightenment S. <no-...@en...> - 2010-12-22 23:05:21
|
Log: avoid null deref Author: discomfitor Date: 2010-12-22 15:05:14 -0800 (Wed, 22 Dec 2010) New Revision: 55714 Trac: http://trac.enlightenment.org/e/changeset/55714 Modified: trunk/e/src/bin/e_randr.c Modified: trunk/e/src/bin/e_randr.c =================================================================== --- trunk/e/src/bin/e_randr.c 2010-12-22 23:02:00 UTC (rev 55713) +++ trunk/e/src/bin/e_randr.c 2010-12-22 23:05:14 UTC (rev 55714) @@ -1244,7 +1244,7 @@ /* * 2b. geometrically identical mode */ - if ((mode_info = _e_randr_mode_geo_identical_find(output_info->modes, primary_output->crtc->current_mode))) + if (primary_output->crtc && (mode_info = _e_randr_mode_geo_identical_find(output_info->modes, primary_output->crtc->current_mode))) { ret = ecore_x_randr_crtc_mode_set(e_randr_screen_info->root, usable_crtc->xid, &output_info->xid, 1, mode_info->xid); return (ret && ecore_x_randr_crtc_pos_relative_set(e_randr_screen_info->root, usable_crtc->xid, primary_output->crtc->xid, ECORE_X_RANDR_OUTPUT_POLICY_CLONE, e_randr_screen_info->rrvd_info.randr_info_12->alignment)); |
From: Enlightenment S. <no-...@en...> - 2010-12-22 23:05:54
|
Log: move if{} block into another if{} block to avoid null deref Author: discomfitor Date: 2010-12-22 15:05:47 -0800 (Wed, 22 Dec 2010) New Revision: 55715 Trac: http://trac.enlightenment.org/e/changeset/55715 Modified: trunk/e/src/bin/e_zone.c Modified: trunk/e/src/bin/e_zone.c =================================================================== --- trunk/e/src/bin/e_zone.c 2010-12-22 23:05:14 UTC (rev 55714) +++ trunk/e/src/bin/e_zone.c 2010-12-22 23:05:47 UTC (rev 55715) @@ -1075,25 +1075,25 @@ if (shelf->cfg->autohide) continue; orient = shelf->cfg->orient; - } - else - orient = shelf->gadcon->orient; - if (shelf->cfg->desk_show_mode) - { - skip_shelf = 1; - EINA_LIST_FOREACH(shelf->cfg->desk_list, ll, sd) + if (shelf->cfg->desk_show_mode) { - if (!sd) continue; - if ((sd->x == zone->desk_x_current) && (sd->y == zone->desk_y_current)) + skip_shelf = 1; + EINA_LIST_FOREACH(shelf->cfg->desk_list, ll, sd) { - skip_shelf = 0; - break; + if (!sd) continue; + if ((sd->x == zone->desk_x_current) && (sd->y == zone->desk_y_current)) + { + skip_shelf = 0; + break; + } } + if (skip_shelf) + continue; } - if (skip_shelf) - continue; } + else + orient = shelf->gadcon->orient; switch (orient) { |
From: Enlightenment S. <no-...@en...> - 2010-12-22 23:32:56
|
Log: I don't even know what to say about the formatting in this file except that it was terrible. ecrustified. Author: discomfitor Date: 2010-12-22 15:32:42 -0800 (Wed, 22 Dec 2010) New Revision: 55723 Trac: http://trac.enlightenment.org/e/changeset/55723 Modified: trunk/e/src/bin/e_border.c Modified: trunk/e/src/bin/e_border.c =================================================================== --- trunk/e/src/bin/e_border.c 2010-12-22 23:32:09 UTC (rev 55722) +++ trunk/e/src/bin/e_border.c 2010-12-22 23:32:42 UTC (rev 55723) @@ -23,94 +23,177 @@ #define E_PRINT_BORDER_INFO(X) \ _e_border_print(X, __PRETTY_FUNC__) -static void _e_border_print(E_Border *bd, const char *func); +static void _e_border_print(E_Border *bd, + const char *func); #endif /* FIXME: these likely belong in a separate icccm/client handler */ /* and the border needs to become a dumb object that just does what its */ /* told to do */ -static Eina_Bool _e_border_cb_window_show_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_destroy(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_hide(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_reparent(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_configure_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_resize_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_gravity(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_stack_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_property(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_colormap(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_shape(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_focus_in(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_focus_out(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_client_message(void *data, int ev_type, void *ev); +static Eina_Bool _e_border_cb_window_show_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_destroy(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_hide(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_reparent(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_configure_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_resize_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_gravity(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_stack_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_property(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_colormap(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_shape(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_focus_in(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_focus_out(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_client_message(void *data, + int ev_type, + void *ev); -static Eina_Bool _e_border_cb_window_state_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_window_move_resize_request(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_desktop_change(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_sync_alarm(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_efreet_cache_update(void *data, int ev_type, void *ev); -static Eina_Bool _e_border_cb_config_icon_theme(void *data, int ev_type, void *ev); +static Eina_Bool _e_border_cb_window_state_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_window_move_resize_request(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_desktop_change(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_sync_alarm(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_efreet_cache_update(void *data, + int ev_type, + void *ev); +static Eina_Bool _e_border_cb_config_icon_theme(void *data, + int ev_type, + void *ev); -static Eina_Bool _e_border_cb_pointer_warp(void *data, int ev_type, void *ev); -static void _e_border_cb_signal_bind(void *data, Evas_Object *obj, const char *emission, const char *source); -static Eina_Bool _e_border_cb_mouse_in(void *data, int type, void *event); -static Eina_Bool _e_border_cb_mouse_out(void *data, int type, void *event); -static Eina_Bool _e_border_cb_mouse_wheel(void *data, int type, void *event); -static Eina_Bool _e_border_cb_mouse_down(void *data, int type, void *event); -static Eina_Bool _e_border_cb_mouse_up(void *data, int type, void *event); -static Eina_Bool _e_border_cb_mouse_move(void *data, int type, void *event); -static Eina_Bool _e_border_cb_grab_replay(void *data, int type, void *event); -static void _e_border_cb_drag_finished(E_Drag *drag, int dropped); +static Eina_Bool _e_border_cb_pointer_warp(void *data, + int ev_type, + void *ev); +static void _e_border_cb_signal_bind(void *data, + Evas_Object *obj, + const char *emission, + const char *source); +static Eina_Bool _e_border_cb_mouse_in(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_mouse_out(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_mouse_wheel(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_mouse_down(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_mouse_up(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_mouse_move(void *data, + int type, + void *event); +static Eina_Bool _e_border_cb_grab_replay(void *data, + int type, + void *event); +static void _e_border_cb_drag_finished(E_Drag *drag, + int dropped); -static void _e_border_eval(E_Border *bd); -static void _e_border_eval0(E_Border *bd); -static void _e_border_container_layout_hook(E_Container *con); +static void _e_border_eval(E_Border *bd); +static void _e_border_eval0(E_Border *bd); +static void _e_border_container_layout_hook(E_Container *con); -static void _e_border_moveinfo_gather(E_Border *bd, const char *source); -static void _e_border_resize_handle(E_Border *bd); +static void _e_border_moveinfo_gather(E_Border *bd, + const char *source); +static void _e_border_resize_handle(E_Border *bd); -static Eina_Bool _e_border_shade_animator(void *data); +static Eina_Bool _e_border_shade_animator(void *data); -static void _e_border_event_border_add_free(void *data, void *ev); -static void _e_border_event_border_remove_free(void *data, void *ev); -static void _e_border_event_border_zone_set_free(void *data, void *ev); -static void _e_border_event_border_desk_set_free(void *data, void *ev); -static void _e_border_event_border_stack_free(void *data, void *ev); -static void _e_border_event_border_icon_change_free(void *data, void *ev); -static void _e_border_event_border_urgent_change_free(void *data, void *ev); -static void _e_border_event_border_focus_in_free(void *data, void *ev); -static void _e_border_event_border_focus_out_free(void *data, void *ev); -static void _e_border_event_border_resize_free(void *data, void *ev); -static void _e_border_event_border_move_free(void *data, void *ev); -static void _e_border_event_border_show_free(void *data, void *ev); -static void _e_border_event_border_hide_free(void *data, void *ev); -static void _e_border_event_border_iconify_free(void *data, void *ev); -static void _e_border_event_border_uniconify_free(void *data, void *ev); -static void _e_border_event_border_stick_free(void *data, void *ev); -static void _e_border_event_border_unstick_free(void *data, void *ev); -static void _e_border_event_border_property_free(void *data, void *ev); -static void _e_border_event_border_fullscreen_free(void *data, void *ev); -static void _e_border_event_border_unfullscreen_free(void *data, void *ev); +static void _e_border_event_border_add_free(void *data, + void *ev); +static void _e_border_event_border_remove_free(void *data, + void *ev); +static void _e_border_event_border_zone_set_free(void *data, + void *ev); +static void _e_border_event_border_desk_set_free(void *data, + void *ev); +static void _e_border_event_border_stack_free(void *data, + void *ev); +static void _e_border_event_border_icon_change_free(void *data, + void *ev); +static void _e_border_event_border_urgent_change_free(void *data, + void *ev); +static void _e_border_event_border_focus_in_free(void *data, + void *ev); +static void _e_border_event_border_focus_out_free(void *data, + void *ev); +static void _e_border_event_border_resize_free(void *data, + void *ev); +static void _e_border_event_border_move_free(void *data, + void *ev); +static void _e_border_event_border_show_free(void *data, + void *ev); +static void _e_border_event_border_hide_free(void *data, + void *ev); +static void _e_border_event_border_iconify_free(void *data, + void *ev); +static void _e_border_event_border_uniconify_free(void *data, + void *ev); +static void _e_border_event_border_stick_free(void *data, + void *ev); +static void _e_border_event_border_unstick_free(void *data, + void *ev); +static void _e_border_event_border_property_free(void *data, + void *ev); +static void _e_border_event_border_fullscreen_free(void *data, + void *ev); +static void _e_border_event_border_unfullscreen_free(void *data, + void *ev); -static void _e_border_zone_update(E_Border *bd); +static void _e_border_zone_update(E_Border *bd); -static int _e_border_resize_begin(E_Border *bd); -static int _e_border_resize_end(E_Border *bd); -static void _e_border_resize_update(E_Border *bd); +static int _e_border_resize_begin(E_Border *bd); +static int _e_border_resize_end(E_Border *bd); +static void _e_border_resize_update(E_Border *bd); -static int _e_border_move_begin(E_Border *bd); -static int _e_border_move_end(E_Border *bd); -static void _e_border_move_update(E_Border *bd); +static int _e_border_move_begin(E_Border *bd); +static int _e_border_move_end(E_Border *bd); +static void _e_border_move_update(E_Border *bd); -static Eina_Bool _e_border_cb_ping_poller(void *data); -static Eina_Bool _e_border_cb_kill_timer(void *data); +static Eina_Bool _e_border_cb_ping_poller(void *data); +static Eina_Bool _e_border_cb_kill_timer(void *data); -static void _e_border_pointer_resize_begin(E_Border *bd); -static void _e_border_pointer_resize_end(E_Border *bd); -static void _e_border_pointer_move_begin(E_Border *bd); -static void _e_border_pointer_move_end(E_Border *bd); +static void _e_border_pointer_resize_begin(E_Border *bd); +static void _e_border_pointer_resize_end(E_Border *bd); +static void _e_border_pointer_move_begin(E_Border *bd); +static void _e_border_pointer_move_end(E_Border *bd); -static void _e_border_hook_call(E_Border_Hook_Point hookpoint, void *bd); +static void _e_border_hook_call(E_Border_Hook_Point hookpoint, + void *bd); static void _e_border_client_move_resize_send(E_Border *bd); @@ -118,7 +201,7 @@ static Eina_List *handlers = NULL; static Eina_List *borders = NULL; static Eina_Hash *borders_hash = NULL; -static E_Border *focused = NULL; +static E_Border *focused = NULL; static E_Border *resize = NULL; static E_Border *move = NULL; @@ -163,10 +246,10 @@ EAPI int E_EVENT_BORDER_FULLSCREEN = 0; EAPI int E_EVENT_BORDER_UNFULLSCREEN = 0; -#define GRAV_SET(bd, grav) \ -ecore_x_window_gravity_set(bd->bg_win, grav); \ -ecore_x_window_gravity_set(bd->client.shell_win, grav); \ -ecore_x_window_gravity_set(bd->client.win, grav); +#define GRAV_SET(bd, grav) \ + ecore_x_window_gravity_set(bd->bg_win, grav); \ + ecore_x_window_gravity_set(bd->client.shell_win, grav); \ + ecore_x_window_gravity_set(bd->client.win, grav); /* externally accessible functions */ EINTERN int @@ -237,7 +320,10 @@ } EAPI E_Border * -e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal) +e_border_new(E_Container *con, + Ecore_X_Window win, + int first_map, + int internal) { E_Border *bd, *bd2; Ecore_X_Window_Attributes *att; @@ -264,8 +350,8 @@ e_bindings_wheel_grab(E_BINDING_CONTEXT_BORDER, bd->win); e_focus_setup(bd); bd->bg_ecore_evas = e_canvas_new(e_config->evas_engine_borders, bd->win, - 0, 0, bd->w, bd->h, 1, 0, - &(bd->bg_win)); + 0, 0, bd->w, bd->h, 1, 0, + &(bd->bg_win)); e_canvas_add(bd->bg_ecore_evas); bd->event_win = ecore_x_window_input_new(bd->win, 0, 0, bd->w, bd->h); bd->bg_evas = ecore_evas_get(bd->bg_ecore_evas); @@ -284,18 +370,18 @@ if ((!ecore_x_window_attributes_get(win, att)) || (att->input_only)) { // printf("##- ATTR FETCH FAILED/INPUT ONLY FOR 0x%x - ABORT MANAGE\n", win); - e_canvas_del(bd->bg_ecore_evas); - ecore_evas_free(bd->bg_ecore_evas); - ecore_x_window_free(bd->client.shell_win); - e_bindings_mouse_ungrab(E_BINDING_CONTEXT_BORDER, bd->win); - e_bindings_wheel_ungrab(E_BINDING_CONTEXT_BORDER, bd->win); - ecore_x_window_free(bd->win); - free(bd); - return NULL; + e_canvas_del(bd->bg_ecore_evas); + ecore_evas_free(bd->bg_ecore_evas); + ecore_x_window_free(bd->client.shell_win); + e_bindings_mouse_ungrab(E_BINDING_CONTEXT_BORDER, bd->win); + e_bindings_wheel_ungrab(E_BINDING_CONTEXT_BORDER, bd->win); + ecore_x_window_free(bd->win); + free(bd); + return NULL; } /* printf("##- ON MAP CLIENT 0x%x SIZE %ix%i %i:%i\n", - * bd->client.win, bd->client.w, bd->client.h, att->x, att->y); */ + * bd->client.win, bd->client.w, bd->client.h, att->x, att->y); */ /* FIXME: if first_map is 1 then we should ignore the first hide event * or ensure the window is already hidden and events flushed before we @@ -303,12 +389,12 @@ if (first_map) { // printf("##- FIRST MAP\n"); - bd->x = att->x; - bd->y = att->y; - bd->changes.pos = 1; - bd->re_manage = 1; - // needed to be 1 for internal windw and on restart. - // bd->ignore_first_unmap = 2; + bd->x = att->x; + bd->y = att->y; + bd->changes.pos = 1; + bd->re_manage = 1; + // needed to be 1 for internal windw and on restart. + // bd->ignore_first_unmap = 2; } bd->client.win = win; @@ -366,7 +452,7 @@ bd->client.netwm.action.close = 0; bd->client.netwm.type = ECORE_X_WINDOW_TYPE_UNKNOWN; - { + { int at_num = 0, i; Ecore_X_Atom *atoms; @@ -375,121 +461,121 @@ if (atoms) { /* icccm */ - for (i = 0; i < at_num; i++) - { - if (atoms[i] == ECORE_X_ATOM_WM_NAME) - bd->client.icccm.fetch.title = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_CLASS) - bd->client.icccm.fetch.name_class = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_ICON_NAME) - bd->client.icccm.fetch.icon_name = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_CLIENT_MACHINE) - bd->client.icccm.fetch.machine = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_HINTS) - bd->client.icccm.fetch.hints = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_NORMAL_HINTS) - bd->client.icccm.fetch.size_pos_hints = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_PROTOCOLS) - bd->client.icccm.fetch.protocol = 1; - else if (atoms[i] == ECORE_X_ATOM_MOTIF_WM_HINTS) - bd->client.mwm.fetch.hints = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_TRANSIENT_FOR) - { - bd->client.icccm.fetch.transient_for = 1; - bd->client.netwm.fetch.type = 1; - } - else if (atoms[i] == ECORE_X_ATOM_WM_CLIENT_LEADER) - bd->client.icccm.fetch.client_leader = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_WINDOW_ROLE) - bd->client.icccm.fetch.window_role = 1; - else if (atoms[i] == ECORE_X_ATOM_WM_STATE) - bd->client.icccm.fetch.state = 1; - } - /* netwm, loop again, netwm will ignore some icccm, so we - * have to be sure that netwm is checked after */ - for (i = 0; i < at_num; i++) - { - if (atoms[i] == ECORE_X_ATOM_NET_WM_NAME) - { - /* Ignore icccm */ - bd->client.icccm.fetch.title = 0; - bd->client.netwm.fetch.name = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_ICON_NAME) - { - /* Ignore icccm */ - bd->client.icccm.fetch.icon_name = 0; - bd->client.netwm.fetch.icon_name = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_ICON) - { - bd->client.netwm.fetch.icon = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_USER_TIME) - { - bd->client.netwm.fetch.user_time = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_STRUT) - { - printf("ECORE_X_ATOM_NET_WM_STRUT\n"); - bd->client.netwm.fetch.strut = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_STRUT_PARTIAL) - { - printf("ECORE_X_ATOM_NET_WM_STRUT_PARTIAL\n"); - bd->client.netwm.fetch.strut = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_WINDOW_TYPE) - { - /* Ignore mwm - bd->client.mwm.fetch.hints = 0; - */ - bd->client.netwm.fetch.type = 1; - } - else if (atoms[i] == ECORE_X_ATOM_NET_WM_STATE) - { - bd->client.netwm.fetch.state = 1; - } - } - /* other misc atoms */ - for (i = 0; i < at_num; i++) - { - /* loop to check for own atoms */ - if (atoms[i] == E_ATOM_WINDOW_STATE) - { - bd->client.e.fetch.state = 1; - } - /* loop to check for qtopia atoms */ - if (atoms[i] == ATM__QTOPIA_SOFT_MENU) - bd->client.qtopia.fetch.soft_menu = 1; - else if (atoms[i] == ATM__QTOPIA_SOFT_MENUS) - bd->client.qtopia.fetch.soft_menus = 1; - /* loop to check for vkbd atoms */ - else if (atoms[i] == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE) - bd->client.vkbd.fetch.state = 1; - else if (atoms[i] == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD) - bd->client.vkbd.fetch.vkbd = 1; - /* loop to check for illume atoms */ - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_CONFORMANT) - bd->client.illume.conformant.fetch.conformant = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) - bd->client.illume.quickpanel.fetch.state = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL) - bd->client.illume.quickpanel.fetch.quickpanel = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR) - bd->client.illume.quickpanel.fetch.priority.major = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR) - bd->client.illume.quickpanel.fetch.priority.minor = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE) - bd->client.illume.quickpanel.fetch.zone = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED) - bd->client.illume.drag.fetch.locked = 1; - else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_DRAG) - bd->client.illume.drag.fetch.drag = 1; - } - free(atoms); + for (i = 0; i < at_num; i++) + { + if (atoms[i] == ECORE_X_ATOM_WM_NAME) + bd->client.icccm.fetch.title = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_CLASS) + bd->client.icccm.fetch.name_class = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_ICON_NAME) + bd->client.icccm.fetch.icon_name = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_CLIENT_MACHINE) + bd->client.icccm.fetch.machine = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_HINTS) + bd->client.icccm.fetch.hints = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_NORMAL_HINTS) + bd->client.icccm.fetch.size_pos_hints = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_PROTOCOLS) + bd->client.icccm.fetch.protocol = 1; + else if (atoms[i] == ECORE_X_ATOM_MOTIF_WM_HINTS) + bd->client.mwm.fetch.hints = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_TRANSIENT_FOR) + { + bd->client.icccm.fetch.transient_for = 1; + bd->client.netwm.fetch.type = 1; + } + else if (atoms[i] == ECORE_X_ATOM_WM_CLIENT_LEADER) + bd->client.icccm.fetch.client_leader = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_WINDOW_ROLE) + bd->client.icccm.fetch.window_role = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_STATE) + bd->client.icccm.fetch.state = 1; + } + /* netwm, loop again, netwm will ignore some icccm, so we + * have to be sure that netwm is checked after */ + for (i = 0; i < at_num; i++) + { + if (atoms[i] == ECORE_X_ATOM_NET_WM_NAME) + { + /* Ignore icccm */ + bd->client.icccm.fetch.title = 0; + bd->client.netwm.fetch.name = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_ICON_NAME) + { + /* Ignore icccm */ + bd->client.icccm.fetch.icon_name = 0; + bd->client.netwm.fetch.icon_name = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_ICON) + { + bd->client.netwm.fetch.icon = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_USER_TIME) + { + bd->client.netwm.fetch.user_time = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_STRUT) + { + printf("ECORE_X_ATOM_NET_WM_STRUT\n"); + bd->client.netwm.fetch.strut = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_STRUT_PARTIAL) + { + printf("ECORE_X_ATOM_NET_WM_STRUT_PARTIAL\n"); + bd->client.netwm.fetch.strut = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_WINDOW_TYPE) + { + /* Ignore mwm + bd->client.mwm.fetch.hints = 0; + */ + bd->client.netwm.fetch.type = 1; + } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_STATE) + { + bd->client.netwm.fetch.state = 1; + } + } + /* other misc atoms */ + for (i = 0; i < at_num; i++) + { + /* loop to check for own atoms */ + if (atoms[i] == E_ATOM_WINDOW_STATE) + { + bd->client.e.fetch.state = 1; + } + /* loop to check for qtopia atoms */ + if (atoms[i] == ATM__QTOPIA_SOFT_MENU) + bd->client.qtopia.fetch.soft_menu = 1; + else if (atoms[i] == ATM__QTOPIA_SOFT_MENUS) + bd->client.qtopia.fetch.soft_menus = 1; + /* loop to check for vkbd atoms */ + else if (atoms[i] == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE) + bd->client.vkbd.fetch.state = 1; + else if (atoms[i] == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD) + bd->client.vkbd.fetch.vkbd = 1; + /* loop to check for illume atoms */ + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_CONFORMANT) + bd->client.illume.conformant.fetch.conformant = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) + bd->client.illume.quickpanel.fetch.state = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL) + bd->client.illume.quickpanel.fetch.quickpanel = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR) + bd->client.illume.quickpanel.fetch.priority.major = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR) + bd->client.illume.quickpanel.fetch.priority.minor = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE) + bd->client.illume.quickpanel.fetch.zone = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED) + bd->client.illume.drag.fetch.locked = 1; + else if (atoms[i] == ECORE_X_ATOM_E_ILLUME_DRAG) + bd->client.illume.drag.fetch.drag = 1; + } + free(atoms); } - } + } bd->client.border.changed = 1; bd->client.w = att->w; @@ -576,11 +662,13 @@ EAPI void e_border_res_change_geometry_restore(E_Border *bd) { - struct { + struct + { unsigned char valid : 1; - int x, y, w, h; - struct { - int x, y, w, h; + int x, y, w, h; + struct + { + int x, y, w, h; } saved; } pre_res_change; @@ -644,7 +732,8 @@ } EAPI void -e_border_zone_set(E_Border *bd, E_Zone *zone) +e_border_zone_set(E_Border *bd, + E_Zone *zone) { E_Event_Border_Zone_Set *ev; @@ -658,28 +747,28 @@ /* if the window does not lie in the new zone, move it so that it does */ if (!E_INTERSECTS(bd->x, bd->y, bd->w, bd->h, zone->x, zone->y, zone->w, zone->h)) { - int x, y; - /* first guess -- get offset from old zone, and apply to new zone */ - x = zone->x + (bd->x - bd->zone->x); - y = zone->y + (bd->y - bd->zone->y); + int x, y; + /* first guess -- get offset from old zone, and apply to new zone */ + x = zone->x + (bd->x - bd->zone->x); + y = zone->y + (bd->y - bd->zone->y); - /* keep window from hanging off bottom and left */ - if (x + bd->w > zone->x + zone->w) x += (zone->x + zone->w) - (x + bd->w); - if (y + bd->h > zone->y + zone->h) y += (zone->y + zone->h) - (y + bd->h); + /* keep window from hanging off bottom and left */ + if (x + bd->w > zone->x + zone->w) x += (zone->x + zone->w) - (x + bd->w); + if (y + bd->h > zone->y + zone->h) y += (zone->y + zone->h) - (y + bd->h); - /* make sure to and left are on screen (if the window is larger than the zone, it will hang off the bottom / right) */ - if (x < zone->x) x = zone->x; - if (y < zone->y) y = zone->y; + /* make sure to and left are on screen (if the window is larger than the zone, it will hang off the bottom / right) */ + if (x < zone->x) x = zone->x; + if (y < zone->y) y = zone->y; - if (!E_INTERSECTS(x, y, bd->w, bd->h, zone->x, zone->y, zone->w, zone->h)) - { - /* still not in zone at all, so just move it to closest edge */ - if (x < zone->x) x = zone->x; - if (x >= zone->x + zone->w) x = zone->x + zone->w - bd->w; - if (y < zone->y) y = zone->y; - if (y >= zone->y + zone->h) y = zone->y + zone->h - bd->h; - } - e_border_move(bd, x, y); + if (!E_INTERSECTS(x, y, bd->w, bd->h, zone->x, zone->y, zone->w, zone->h)) + { + /* still not in zone at all, so just move it to closest edge */ + if (x < zone->x) x = zone->x; + if (x >= zone->x + zone->w) x = zone->x + zone->w - bd->w; + if (y < zone->y) y = zone->y; + if (y >= zone->y + zone->h) y = zone->y + zone->h - bd->h; + } + e_border_move(bd, x, y); } bd->zone = zone; @@ -701,7 +790,8 @@ } EAPI void -e_border_desk_set(E_Border *bd, E_Desk *desk) +e_border_desk_set(E_Border *bd, + E_Desk *desk) { E_Event_Border_Desk_Set *ev; E_Desk *old_desk; @@ -714,8 +804,8 @@ ecore_x_window_shadow_tree_flush(); if (bd->fullscreen) { - bd->desk->fullscreen_borders--; - desk->fullscreen_borders++; + bd->desk->fullscreen_borders--; + desk->fullscreen_borders++; } old_desk = bd->desk; bd->desk = desk; @@ -734,20 +824,20 @@ if (bd->ignore_first_unmap != 1) { - if ((bd->desk->visible) || (bd->sticky)) - e_border_show(bd); - else - e_border_hide(bd, 1); + if ((bd->desk->visible) || (bd->sticky)) + e_border_show(bd); + else + e_border_hide(bd, 1); } if (e_config->transient.desktop) { - Eina_List *l; - E_Border *child; - EINA_LIST_FOREACH(bd->transients, l, child) - { - e_border_desk_set(child, bd->desk); - } + Eina_List *l; + E_Border *child; + EINA_LIST_FOREACH(bd->transients, l, child) + { + e_border_desk_set(child, bd->desk); + } } e_remember_update(bd); } @@ -781,7 +871,8 @@ } EAPI void -e_border_hide(E_Border *bd, int manage) +e_border_hide(E_Border *bd, + int manage) { unsigned int visible; @@ -793,9 +884,9 @@ _e_border_move_end(bd); if (bd->resize_mode != RESIZE_NONE) { - _e_border_pointer_resize_end(bd); - bd->resize_mode = RESIZE_NONE; - _e_border_resize_end(bd); + _e_border_pointer_resize_end(bd); + bd->resize_mode = RESIZE_NONE; + _e_border_resize_end(bd); } e_container_shape_hide(bd->shape); @@ -806,11 +897,11 @@ if (!bd->need_reparent) { - if (bd->focused) - { - e_border_focus_set(bd, 0, 1); - if (manage != 2) - { + if (bd->focused) + { + e_border_focus_set(bd, 0, 1); + if (manage != 2) + { E_Border *pbd; E_Container *con; E_Zone *zone; @@ -825,30 +916,30 @@ e_border_focus_set(bd->parent, 1, 1); else if (e_config->focus_revert_on_hide_or_close) { - /* When using pointer focus, the border under the - * pointer (if any) gets focused, in sloppy/click - * focus the last focused window on the current - * desk gets focus */ - if (e_config->focus_policy == E_FOCUS_MOUSE) - { - pbd = e_border_under_pointer_get(desk, bd); - if (pbd) - e_border_focus_set(pbd, 1, 1); - } - else - e_desk_last_focused_focus(desk); + /* When using pointer focus, the border under the + * pointer (if any) gets focused, in sloppy/click + * focus the last focused window on the current + * desk gets focus */ + if (e_config->focus_policy == E_FOCUS_MOUSE) + { + pbd = e_border_under_pointer_get(desk, bd); + if (pbd) + e_border_focus_set(pbd, 1, 1); + } + else + e_desk_last_focused_focus(desk); } } } - if (manage == 1) - { - /* Make sure that this border isn't deleted */ - bd->await_hide_event++; - } - if (manage != 2) + if (manage == 1) { + /* Make sure that this border isn't deleted */ + bd->await_hide_event++; + } + if (manage != 2) + { if (!e_manager_comp_evas_get(bd->zone->container->manager)) - ecore_x_window_hide(bd->client.win); + ecore_x_window_hide(bd->client.win); } } @@ -859,13 +950,13 @@ if (!stopping) { - E_Event_Border_Hide *ev; + E_Event_Border_Hide *ev; - ev = E_NEW(E_Event_Border_Hide, 1); - ev->border = bd; - e_object_ref(E_OBJECT(bd)); + ev = E_NEW(E_Event_Border_Hide, 1); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); // e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event"); - ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL); + ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL); } bd->post_show = 0; } @@ -875,20 +966,26 @@ { if (bd->internal_ecore_evas) ecore_evas_managed_move(bd->internal_ecore_evas, - bd->x + bd->fx.x + bd->client_inset.l, - bd->y + bd->fx.y + bd->client_inset.t); + bd->x + bd->fx.x + bd->client_inset.l, + bd->y + bd->fx.y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, - bd->x + bd->fx.x + bd->client_inset.l, - bd->y + bd->fx.y + bd->client_inset.t, - bd->client.w, - bd->client.h); + bd->x + bd->fx.x + bd->client_inset.l, + bd->y + bd->fx.y + bd->client_inset.t, + bd->client.w, + bd->client.h); } static void -_e_border_pending_move_resize_add(E_Border *bd, int move, int resize, - int x, int y, int w, int h, - Eina_Bool without_border, unsigned int serial) +_e_border_pending_move_resize_add(E_Border *bd, + int move, + int resize, + int x, + int y, + int w, + int h, + Eina_Bool without_border, + unsigned int serial) { E_Border_Pending_Move_Resize *pnd; @@ -906,7 +1003,10 @@ } static void -_e_border_move_internal(E_Border *bd, int x, int y, Eina_Bool without_border) +_e_border_move_internal(E_Border *bd, + int x, + int y, + Eina_Bool without_border) { E_Event_Border_Move *ev; @@ -916,14 +1016,14 @@ ecore_x_window_shadow_tree_flush(); if (bd->new_client) { - _e_border_pending_move_resize_add(bd, 1, 0, x, y, 0, 0, without_border, 0); - return; + _e_border_pending_move_resize_add(bd, 1, 0, x, y, 0, 0, without_border, 0); + return; } if (without_border) { - x -= bd->client_inset.l; - y -= bd->client_inset.t; + x -= bd->client_inset.l; + y -= bd->client_inset.t; } if ((x == bd->x) && (y == bd->y)) return; @@ -936,8 +1036,8 @@ #if 0 if (bd->client.netwm.sync.request) { - bd->client.netwm.sync.wait++; - ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++); + bd->client.netwm.sync.wait++; + ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++); } #endif _e_border_client_move_resize_send(bd); @@ -964,7 +1064,9 @@ * @see e_border_move_without_border() */ EAPI void -e_border_move(E_Border *bd, int x, int y) +e_border_move(E_Border *bd, + int x, + int y) { if (bd->fullscreen) return; @@ -993,7 +1095,9 @@ * @see e_border_move() */ EAPI void -e_border_move_without_border(E_Border *bd, int x, int y) +e_border_move_without_border(E_Border *bd, + int x, + int y) { if (bd->fullscreen) return; @@ -1017,7 +1121,9 @@ } EAPI void -e_border_center_pos_get(E_Border *bd, int *x, int *y) +e_border_center_pos_get(E_Border *bd, + int *x, + int *y) { int zx, zy, zw, zh; E_OBJECT_CHECK(bd); @@ -1029,7 +1135,9 @@ } EAPI void -e_border_fx_offset(E_Border *bd, int x, int y) +e_border_fx_offset(E_Border *bd, + int x, + int y) { E_OBJECT_CHECK(bd); E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); @@ -1045,7 +1153,13 @@ } static void -_e_border_move_resize_internal(E_Border *bd, int x, int y, int w, int h, Eina_Bool without_border, Eina_Bool move) +_e_border_move_resize_internal(E_Border *bd, + int x, + int y, + int w, + int h, + Eina_Bool without_border, + Eina_Bool move) { E_Event_Border_Move *mev; E_Event_Border_Resize *rev; @@ -1057,29 +1171,29 @@ if (bd->new_client) { - _e_border_pending_move_resize_add(bd, move, 1, x, y, w, h, without_border, 0); - return; + _e_border_pending_move_resize_add(bd, move, 1, x, y, w, h, without_border, 0); + return; } if (without_border) { - x -= bd->client_inset.l; - y -= bd->client_inset.t; - w += (bd->client_inset.l + bd->client_inset.r); - h += (bd->client_inset.t + bd->client_inset.b); + x -= bd->client_inset.l; + y -= bd->client_inset.t; + w += (bd->client_inset.l + bd->client_inset.r); + h += (bd->client_inset.t + bd->client_inset.b); } if ((!move || ((x == bd->x) && (y == bd->y))) && - (w == bd->w) && (h == bd->h)) + (w == bd->w) && (h == bd->h)) return; bd->maximized = 0; bd->pre_res_change.valid = 0; if (move) { - bd->changes.pos = 1; - bd->x = x; - bd->y = y; + bd->changes.pos = 1; + bd->x = x; + bd->y = y; } bd->w = w; bd->h = h; @@ -1088,33 +1202,33 @@ if ((bd->shaped) || (bd->client.shaped)) { - bd->need_shape_merge = 1; - bd->need_shape_export = 1; + bd->need_shape_merge = 1; + bd->need_shape_export = 1; } if (bd->internal_ecore_evas) { - bd->changed = 1; - bd->changes.size = 1; + bd->changed = 1; + bd->changes.size = 1; } else { - if (resize && bd->client.netwm.sync.request) - { - bd->client.netwm.sync.wait++; - /* Don't use x and y as supplied to this function, as it is called with 0, 0 - * when no move is intended. The border geometry is set above anyways. - */ - _e_border_pending_move_resize_add(bd, move, 1, bd->x, bd->y, bd->w, bd->h, without_border, - bd->client.netwm.sync.serial); - ecore_x_netwm_sync_request_send(bd->client.win, - bd->client.netwm.sync.serial++); - } - else - { - bd->changed = 1; - bd->changes.size = 1; - } + if (resize && bd->client.netwm.sync.request) + { + bd->client.netwm.sync.wait++; + /* Don't use x and y as supplied to this function, as it is called with 0, 0 + * when no move is intended. The border geometry is set above anyways. + */ + _e_border_pending_move_resize_add(bd, move, 1, bd->x, bd->y, bd->w, bd->h, without_border, + bd->client.netwm.sync.serial); + ecore_x_netwm_sync_request_send(bd->client.win, + bd->client.netwm.sync.serial++); + } + else + { + bd->changed = 1; + bd->changes.size = 1; + } } _e_border_client_move_resize_send(bd); @@ -1122,11 +1236,11 @@ _e_border_resize_update(bd); if (move) { - mev = E_NEW(E_Event_Border_Move, 1); - mev->border = bd; - e_object_ref(E_OBJECT(bd)); - // e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event"); - ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, NULL); + mev = E_NEW(E_Event_Border_Move, 1); + mev->border = bd; + e_object_ref(E_OBJECT(bd)); + // e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event"); + ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, NULL); } rev = E_NEW(E_Event_Border_Resize, 1); @@ -1153,7 +1267,11 @@ * @see e_border_move_resize_without_border() */ EAPI void -e_border_move_resize(E_Border *bd, int x, int y, int w, int h) +e_border_move_resize(E_Border *bd, + int x, + int y, + int w, + int h) { if ((bd->fullscreen) || ((bd->maximized) && (!e_config->allow_manip) && (!bd->shading))) @@ -1178,7 +1296,11 @@ * @see e_border_move_resize() */ EAPI void -e_border_move_resize_without_border(E_Border *bd, int x, int y, int w, int h) +e_border_move_resize_without_border(E_Border *bd, + int x, + int y, + int w, + int h) { if ((bd->fullscreen) || ((bd->maximized) && (!e_config->allow_manip) && (!bd->shading))) @@ -1201,7 +1323,9 @@ * @see e_border_resize_without_border() */ EAPI void -e_border_resize(E_Border *bd, int w, int h) +e_border_resize(E_Border *bd, + int w, + int h) { if ((bd->fullscreen) || ((bd->maximized) && (!e_config->allow_manip) && (!bd->shading))) @@ -1227,7 +1351,9 @@ * @see e_border_resize() */ EAPI void -e_border_resize_without_border(E_Border *bd, int w, int h) +e_border_resize_without_border(E_Border *bd, + int w, + int h) { if ((bd->fullscreen) || ((bd->maximized) && (!e_config->allow_manip) && (!bd->shading))) @@ -1237,7 +1363,8 @@ } EAPI void -e_border_layer_set(E_Border *bd, int layer) +e_border_layer_set(E_Border *bd, + int layer) { int raise; @@ -1252,19 +1379,19 @@ bd->layer = layer; if (e_config->transient.layer) { - Eina_List *l; - E_Border *child; + Eina_List *l; + E_Border *child; - /* We need to set raise to one, else the child wont - * follow to the new layer. It should be like this, - * even if the user usually doesn't want to raise - * the transients. - */ - e_config->transient.raise = 1; - EINA_LIST_FOREACH(bd->transients, l, child) - { - child->layer = layer; - } + /* We need to set raise to one, else the child wont + * follow to the new layer. It should be like this, + * even if the user usually doesn't want to raise + * the transients. + */ + e_config->transient.raise = 1; + EINA_LIST_FOREACH(bd->transients, l, child) + { + child->layer = layer; + } } e_border_raise(bd); e_config->transient.raise = raise; @@ -1284,39 +1411,39 @@ if (e_config->transient.raise) { - EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) - { - /* Don't stack iconic transients. If the user wants these shown, - * thats another option. - */ - if (!child->iconic) - { - if (last) - e_border_stack_below(child, last); - else - { - E_Border *above; + EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) + { + /* Don't stack iconic transients. If the user wants these shown, + * thats another option. + */ + if (!child->iconic) + { + if (last) + e_border_stack_below(child, last); + else + { + E_Border *above; - /* First raise the border to find out which border we will end up above */ - above = e_container_border_raise(child); + /* First raise the border to find out which border we will end up above */ + above = e_container_border_raise(child); - if (above) - { - /* We ended up above a border, now we must stack this border to - * generate the stacking event, and to check if this transient - * has other transients etc. - */ - e_border_stack_above(child, above); - } - else - { - /* If we didn't end up above any border, we are on the bottom! */ - e_border_lower(child); - } - } - last = child; - } - } + if (above) + { + /* We ended up above a border, now we must stack this border to + * generate the stacking event, and to check if this transient + * has other transients etc. + */ + e_border_stack_above(child, above); + } + else + { + /* If we didn't end up above any border, we are on the bottom! */ + e_border_lower(child); + } + } + last = child; + } + } } ev = E_NEW(E_Event_Border_Stack, 1); @@ -1325,31 +1452,31 @@ if (last) { - e_container_border_stack_below(bd, last); - ev->stack = last; - e_object_ref(E_OBJECT(last)); - ev->type = E_STACKING_BELOW; + e_container_border_stack_below(bd, last); + ev->stack = last; + e_object_ref(E_OBJECT(last)); + ev->type = E_STACKING_BELOW; } else { - E_Border *above; + E_Border *above; - /* If we don't have any children, raise this border */ - above = e_container_border_raise(bd); - e_border_raise_latest_set(bd); - if (above) - { - /* We ended up above a border */ - ev->stack = above; - e_object_ref(E_OBJECT(above)); - ev->type = E_STACKING_ABOVE; - } - else - { - /* No border to raise above, same as a lower! */ - ev->stack = NULL; - ev->type = E_STACKING_ABOVE; - } + /* If we don't have any children, raise this border */ + above = e_container_border_raise(bd); + e_border_raise_latest_set(bd); + if (above) + { + /* We ended up above a border */ + ev->stack = above; + e_object_ref(E_OBJECT(above)); + ev->type = E_STACKING_ABOVE; + } + else + { + /* No border to raise above, same as a lower! */ + ev->stack = NULL; + ev->type = E_STACKING_ABOVE; + } } ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL); @@ -1370,39 +1497,39 @@ if (e_config->transient.lower) { - EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) - { - /* Don't stack iconic transients. If the user wants these shown, - * thats another option. - */ - if (!child->iconic) - { - if (last) - e_border_stack_below(child, last); - else - { - E_Border *below; + EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) + { + /* Don't stack iconic transients. If the user wants these shown, + * thats another option. + */ + if (!child->iconic) + { + if (last) + e_border_stack_below(child, last); + else + { + E_Border *below; - /* First lower the border to find out which border we will end up below */ - below = e_container_border_lower(child); + /* First lower the border to find out which border we will end up below */ + below = e_container_border_lower(child); - if (below) - { - /* We ended up below a border, now we must stack this border to - * generate the stacking event, and to check if this transient - * has other transients etc. - */ - e_border_stack_below(child, below); - } - else - { - /* If we didn't end up below any border, we are on top! */ - e_border_raise(child); - } - } - last = child; - } - } + if (below) + { + /* We ended up below a border, now we must stack this border to + * generate the stacking event, and to check if this transient + * has other transients etc. + */ + e_border_stack_below(child, below); + } + else + { + /* If we didn't end up below any border, we are on top! */ + e_border_raise(child); + } + } + last = child; + } + } } ev = E_NEW(E_Event_Border_Stack, 1); @@ -1411,30 +1538,30 @@ if (last) { - e_container_border_stack_below(bd, last); - ev->stack = last; - e_object_ref(E_OBJECT(last)); - ev->type = E_STACKING_BELOW; + e_container_border_stack_below(bd, last); + ev->stack = last; + e_object_ref(E_OBJECT(last)); + ev->type = E_STACKING_BELOW; } else { - E_Border *below; + E_Border *below; - /* If we don't have any children, lower this border */ - below = e_container_border_lower(bd); - if (below) - { - /* We ended up below a border */ - ev->stack = below; - e_object_ref(E_OBJECT(below)); - ev->type = E_STACKING_BELOW; - } - else - { - /* No border to hide under, same as a raise! */ - ev->stack = NULL; - ev->type = E_STACKING_BELOW; - } + /* If we don't have any children, lower this border */ + below = e_container_border_lower(bd); + if (below) + { + /* We ended up below a border */ + ev->stack = below; + e_object_ref(E_OBJECT(below)); + ev->type = E_STACKING_BELOW; + } + else + { + /* No border to hide under, same as a raise! */ + ev->stack = NULL; + ev->type = E_STACKING_BELOW; + } } ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL); @@ -1442,111 +1569,113 @@ } EAPI void -e_border_stack_above(E_Border *bd, E_Border *above) +e_border_stack_above(E_Border *bd, + E_Border *above) { /* TODO: Should stack above allow the border to change level */ - E_Event_Border_Stack *ev; - E_Border *last = NULL, *child; - Eina_List *l; + E_Event_Border_Stack *ev; + E_Border *last = NULL, *child; + Eina_List *l; - E_OBJECT_CHECK(bd); - E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); + E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); - ecore_x_window_shadow_tree_flush(); + ecore_x_window_shadow_tree_flush(); - if (e_config->transient.raise) - { - EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) - { - /* Don't stack iconic transients. If the user wants these shown, - * thats another option. - */ - if (!child->iconic) - { - if (last) - e_border_stack_below(child, last); - else - e_border_stack_above(child, above); - last = child; - } - } - } + if (e_config->transient.raise) + { + EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) + { + /* Don't stack iconic transients. If the user wants these shown, + * thats another option. + */ + if (!child->iconic) + { + if (last) + e_border_stack_below(child, last); + else + e_border_stack_above(child, above); + last = child; + } + } + } - ev = E_NEW(E_Event_Border_Stack, 1); - ev->border = bd; - e_object_ref(E_OBJECT(bd)); + ev = E_NEW(E_Event_Border_Stack, 1); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); - if (last) - { - e_container_border_stack_below(bd, last); - ev->stack = last; - e_object_ref(E_OBJECT(last)); - ev->type = E_STACKING_BELOW; - } - else - { - e_container_border_stack_above(bd, above); - ev->stack = above; - e_object_ref(E_OBJECT(above)); - ev->type = E_STACKING_ABOVE; - } + if (last) + { + e_container_border_stack_below(bd, last); + ev->stack = last; + e_object_ref(E_OBJECT(last)); + ev->type = E_STACKING_BELOW; + } + else + { + e_container_border_stack_above(bd, above); + ev->stack = above; + e_object_ref(E_OBJECT(above)); + ev->type = E_STACKING_ABOVE; + } - ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL); - e_remember_update(bd); + ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL); + e_remember_update(bd); } EAPI void -e_border_stack_below(E_Border *bd, E_Border *below) +e_border_stack_below(E_Border *bd, + E_Border *below) { /* TODO: Should stack below allow the border to change level */ - E_Event_Border_Stack *ev; - E_Border *last = NULL, *child; - Eina_List *l; + E_Event_Border_Stack *ev; + E_Border *last = NULL, *child; + Eina_List *l; - E_OBJECT_CHECK(bd); - E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); + E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); - ecore_x_window_shadow_tree_flush(); + ecore_x_window_shadow_tree_flush(); - if (e_config->transient.lower) - { - EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) - { - /* Don't stack iconic transients. If the user wants these shown, - * thats another option. - */ - if (!child->iconic) - { - if (last) - e_border_stack_below(child, last); - else - e_border_stack_below(child, below); - last = child; - } - } - } + if (e_config->transient.lower) + { + EINA_LIST_REVERSE_FOREACH(bd->transients, l, child) + { + /* Don't stack iconic transients. If the user wants these shown, + * thats another option. + */ + if (!child->iconic) + { + if (last) + e_border_stack_below(child, last); + else + e_border_stack_below(child, below); + last = child; + } + } + } - ev = E_NEW(E_Event_Border_Stack, 1); - ev->border = bd; - e_object_ref(E_OBJECT(bd)); + ev = E_NEW(E_Event_Border_Stack, 1); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); - if (last) - { - e_container_border_stack_below(bd, last); - ev->stack = last; - e_object_ref(E_OBJECT(last)); - ev->type = E_STACKING_BELOW; - } - else - { - e_container_border_stack_below(bd, below); - ev->stack = below; - e_object_ref(E_OBJECT(below)); ... [truncated message content] |
From: Enlightenment S. <no-...@en...> - 2010-12-22 23:36:54
|
Log: avoid using garbage values for z{x,y,w,h}; FIXME!!! Author: discomfitor Date: 2010-12-22 15:36:46 -0800 (Wed, 22 Dec 2010) New Revision: 55724 Trac: http://trac.enlightenment.org/e/changeset/55724 Modified: trunk/e/src/bin/e_border.c Modified: trunk/e/src/bin/e_border.c =================================================================== --- trunk/e/src/bin/e_border.c 2010-12-22 23:32:42 UTC (rev 55723) +++ trunk/e/src/bin/e_border.c 2010-12-22 23:36:46 UTC (rev 55724) @@ -4545,33 +4545,37 @@ */ if (bd->zone) - e_zone_useful_geometry_get(bd->zone, &zx, &zy, &zw, &zh); - - if (e_config->geometry_auto_resize_limit == 1) { - if (w > zw) - w = zw; + e_zone_useful_geometry_get(bd->zone, &zx, &zy, &zw, &zh); - if (h > zh) - h = zh; + if (e_config->geometry_auto_resize_limit == 1) + { + if (w > zw) + w = zw; + + if (h > zh) + h = zh; + } } - e_border_resize(bd, w, h); if (e_config->geometry_auto_move == 1) { - // move window horizontal if resize to not useful geometry - if (bd->x + bd->w > zx + zw) - rx = zx + zw - bd->w; - else if (bd->x < zx) - rx = zx; + /* z{x,y,w,h} are only set here; FIXME! */ + if (bd->zone) + { + // move window horizontal if resize to not useful geometry + if (bd->x + bd->w > zx + zw) + rx = zx + zw - bd->w; + else if (bd->x < zx) + rx = zx; - // move window vertical if resize to not useful geometry - if (bd->y + bd->h > zy + zh) - ry = zy + zh - bd->h; - else if (bd->y < zy) - ry = zy; - + // move window vertical if resize to not useful geometry + if (bd->y + bd->h > zy + zh) + ry = zy + zh - bd->h; + else if (bd->y < zy) + ry = zy; + } e_border_move(bd, rx, ry); } } |
From: Enlightenment S. <no-...@en...> - 2010-12-23 00:24:23
|
Log: avoid garbage deref Author: discomfitor Date: 2010-12-22 16:24:16 -0800 (Wed, 22 Dec 2010) New Revision: 55725 Trac: http://trac.enlightenment.org/e/changeset/55725 Modified: trunk/e/src/bin/e_fm.c Modified: trunk/e/src/bin/e_fm.c =================================================================== --- trunk/e/src/bin/e_fm.c 2010-12-22 23:36:46 UTC (rev 55724) +++ trunk/e/src/bin/e_fm.c 2010-12-23 00:24:16 UTC (rev 55725) @@ -3624,7 +3624,7 @@ n = eina_list_count(sd->icons); E_FREE(sd->tmp.list_index); if (n > 0) - sd->tmp.list_index = malloc(n * sizeof(Eina_List *)); + sd->tmp.list_index = calloc(n, sizeof(Eina_List *)); if (sd->tmp.list_index) { ll = sd->tmp.list_index; @@ -3638,7 +3638,7 @@ p0 = 0; p1 = n; i = (p0 + p1) / 2; ll = sd->tmp.list_index; - do + if (ll[i]) do /* avoid garbage deref */ { ic2 = eina_list_data_get(ll[i]); v = _e_fm2_cb_icon_sort(ic, ic2); |
From: Enlightenment S. <no-...@en...> - 2010-12-23 00:28:57
|
Log: again with the tabs!!!! Author: discomfitor Date: 2010-12-22 16:28:49 -0800 (Wed, 22 Dec 2010) New Revision: 55726 Trac: http://trac.enlightenment.org/e/changeset/55726 Modified: trunk/e/src/bin/e_hints.c Modified: trunk/e/src/bin/e_hints.c =================================================================== --- trunk/e/src/bin/e_hints.c 2010-12-23 00:24:16 UTC (rev 55725) +++ trunk/e/src/bin/e_hints.c 2010-12-23 00:28:49 UTC (rev 55726) @@ -14,14 +14,14 @@ int num; const char *atom_names[] = { "_QTOPIA_SOFT_MENU", - "_QTOPIA_SOFT_MENUS", - "GNOME_SM_PROXY", - "ENLIGHTENMENT_COMMS", - "ENLIGHTENMENT_VERSION", - "ENLIGHTENMENT_SCALE" + "_QTOPIA_SOFT_MENUS", + "GNOME_SM_PROXY", + "ENLIGHTENMENT_COMMS", + "ENLIGHTENMENT_VERSION", + "ENLIGHTENMENT_SCALE" }; Ecore_X_Atom atoms[6]; - + ecore_x_atoms_get(atom_names, 6, atoms); ATM__QTOPIA_SOFT_MENU = atoms[0]; ATM__QTOPIA_SOFT_MENUS = atoms[1]; @@ -29,141 +29,141 @@ ATM_ENLIGHTENMENT_COMMS = atoms[3]; ATM_ENLIGHTENMENT_VERSION = atoms[4]; ATM_ENLIGHTENMENT_SCALE = atoms[5]; - + roots = ecore_x_window_root_list(&num); if (roots) { - Ecore_X_Atom supported[41]; - int supported_num, i; + Ecore_X_Atom supported[41]; + int supported_num, i; - supported_num = 0; - /* Set what hints we support */ - /* Root Window Properties (and Related Messages) */ - supported[supported_num++] = ECORE_X_ATOM_NET_CLIENT_LIST; - supported[supported_num++] = ECORE_X_ATOM_NET_CLIENT_LIST_STACKING; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_VIEWPORT, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_CURRENT_DESKTOP, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_NAMES, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_ACTIVE_WINDOW; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WORKAREA, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK; - supported[supported_num++] = ECORE_X_ATOM_NET_VIRTUAL_ROOTS; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_LAYOUT, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_SHOWING_DESKTOP, 1);*/ + supported_num = 0; + /* Set what hints we support */ + /* Root Window Properties (and Related Messages) */ + supported[supported_num++] = ECORE_X_ATOM_NET_CLIENT_LIST; + supported[supported_num++] = ECORE_X_ATOM_NET_CLIENT_LIST_STACKING; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_VIEWPORT, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_CURRENT_DESKTOP, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_NAMES, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_ACTIVE_WINDOW; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WORKAREA, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK; + supported[supported_num++] = ECORE_X_ATOM_NET_VIRTUAL_ROOTS; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_DESKTOP_LAYOUT, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_SHOWING_DESKTOP, 1);*/ - /* Other Root Window Messages */ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_CLOSE_WINDOW, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_MOVERESIZE_WINDOW, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_MOVERESIZE; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_RESTACK_WINDOW, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS; + /* Other Root Window Messages */ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_CLOSE_WINDOW, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_MOVERESIZE_WINDOW, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_MOVERESIZE; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_RESTACK_WINDOW, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS; - /* Application Window Properties */ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_NAME; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_VISIBLE_NAME; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_ICON_NAME; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_DESKTOP, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MODAL; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_STICKY; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SHADED; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_HIDDEN; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_ABOVE; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_BELOW; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MOVE, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_RESIZE, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_SHADE, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_STICK, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP, 1);*/ - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_CLOSE, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STRUT; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_STRUT_PARTIAL; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ICON_GEOMETRY, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_ICON; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_PID; - /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_HANDLED_ICONS, 1);*/ - supported[supported_num++] = ECORE_X_ATOM_NET_WM_USER_TIME; - supported[supported_num++] = ECORE_X_ATOM_NET_FRAME_EXTENTS; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_PING; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_SYNC_REQUEST; - supported[supported_num++] = ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER; + /* Application Window Properties */ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_NAME; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_VISIBLE_NAME; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_ICON_NAME; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_DESKTOP, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MODAL; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_STICKY; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SHADED; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_HIDDEN; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_ABOVE; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STATE_BELOW; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MOVE, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_RESIZE, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_SHADE, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_STICK, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP, 1);*/ + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ACTION_CLOSE, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STRUT; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_STRUT_PARTIAL; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_ICON_GEOMETRY, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_ICON; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_PID; + /*ecore_x_netwm_supported(roots[supported_num], ECORE_X_ATOM_NET_WM_HANDLED_ICONS, 1);*/ + supported[supported_num++] = ECORE_X_ATOM_NET_WM_USER_TIME; + supported[supported_num++] = ECORE_X_ATOM_NET_FRAME_EXTENTS; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_PING; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_SYNC_REQUEST; + supported[supported_num++] = ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER; - for (i = 0; i < num; i++) - { - Ecore_X_Window win, twin; - int nwins; - char *name; - double ts; - - /* check for previous netwm wm and wait for it to die */ - ts = ecore_time_get(); - nwins = ecore_x_window_prop_window_get(roots[i], - ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, - &win, 1); - if (nwins > 0) - { - for (;;) - { - nwins = ecore_x_window_prop_window_get(win, - ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, - &twin, 1); - if (nwins < 1) break; - if (twin != win) break; - if (ecore_x_netwm_name_get(win, &name)) - { - if (name) - { - if (strcmp(name, "Enlightenment")) - { - free(name); - break; - } - free(name); - } - } - ecore_x_sync(); - if ((ecore_time_get() - ts) > 2.0) - { - e_error_message_show(_("A previous instance of Enlightenment is still active\n" - "on this screen. Aborting startup.\n")); - exit(-1); - } - } - } + for (i = 0; i < num; i++) + { + Ecore_X_Window win, twin; + int nwins; + char *name; + double ts; - /* TODO: Remember this window and close it on shutdown */ - win = ecore_x_window_new(roots[i], -200, -200, 5, 5); -/* + /* check for previous netwm wm and wait for it to die */ + ts = ecore_time_get(); + nwins = ecore_x_window_prop_window_get(roots[i], + ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, + &win, 1); + if (nwins > 0) + { + for (;; ) + { + nwins = ecore_x_window_prop_window_get(win, + ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, + &twin, 1); + if (nwins < 1) break; + if (twin != win) break; + if (ecore_x_netwm_name_get(win, &name)) + { + if (name) + { + if (strcmp(name, "Enlightenment")) + { + free(name); + break; + } + free(name); + } + } + ecore_x_sync(); + if ((ecore_time_get() - ts) > 2.0) + { + e_error_message_show(_("A previous instance of Enlightenment is still active\n" + "on this screen. Aborting startup.\n")); + exit(-1); + } + } + } + + /* TODO: Remember this window and close it on shutdown */ + win = ecore_x_window_new(roots[i], -200, -200, 5, 5); +/* * I don't FUCKING believe it. if we PRETEND we are Kwin - java is happy. * why? it expects a double reparenting wm then. java insists on finding this * out when it should be irrelevant! stupid code! I can't believe the time we * just wasted hunting a bug that wasn't and that is due to sheer stupid * coding (in java's awt layer that swing also uses). */ -/* Now for more stupidity... Openoffice.org will change its look and feel +/* Now for more stupidity... Openoffice.org will change its look and feel * depending on what wm it thinks there is... so if we pretend to be Kwin... * it tries to use kde preferences, if found. */ @@ -173,22 +173,22 @@ * reparenting... i hate java! */ /* ecore_x_netwm_wm_identify(roots[i], win, "KWin");*/ - ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment"); + ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment"); /* this makes openoffice.org read gtk settings so it doesn't look like shit */ - e_hints_openoffice_gnome_fake(roots[i]); + e_hints_openoffice_gnome_fake(roots[i]); - ecore_x_netwm_supported_set(roots[i], supported, supported_num); + ecore_x_netwm_supported_set(roots[i], supported, supported_num); - /* fake mwm, this might crash some ol' motif apps, if - they still exist, but at least it makes borderless - feature of Eterm and urxvt work... */ - ecore_x_atom_get("_MOTIF_WM_INFO"); - } + /* fake mwm, this might crash some ol' motif apps, if + they still exist, but at least it makes borderless + feature of Eterm and urxvt work... */ + ecore_x_atom_get("_MOTIF_WM_INFO"); + } free(roots); } } -/* +/* * This is here so we don't have to pretend to be Kwin anymore - we pretend * to do old e16 style ipc. in fact we just ignore it... but set up the * window port anyway @@ -198,17 +198,17 @@ { Ecore_X_Window win; char buf[256]; - + win = ecore_x_window_input_new(man->root, -100, -100, 1, 1); /* to help detect this is NOT e16 */ snprintf(buf, sizeof(buf), "Enlightenment %s", VERSION); ecore_x_window_prop_property_set(win, ATM_ENLIGHTENMENT_VERSION, ECORE_X_ATOM_STRING, 8, buf, strlen(buf)); ecore_x_window_prop_property_set(man->root, ATM_ENLIGHTENMENT_VERSION, ECORE_X_ATOM_STRING, 8, buf, strlen(buf)); - + snprintf(buf, sizeof(buf), "WINID %8x", (int)win); ecore_x_window_prop_property_set(win, ATM_ENLIGHTENMENT_COMMS, ECORE_X_ATOM_STRING, 8, buf, 14); - + ecore_x_window_prop_property_set(man->root, ATM_ENLIGHTENMENT_COMMS, ECORE_X_ATOM_STRING, 8, buf, 14); } @@ -216,53 +216,53 @@ e_hints_manager_init(E_Manager *man) { /* Set desktop count, desktop names and workarea */ - int i = 0, num = 0; - unsigned int *areas = NULL; - Eina_List *cl; - E_Container *c; - Ecore_X_Window *vroots = NULL; - /* FIXME: Desktop names not yet implemented */ + int i = 0, num = 0; + unsigned int *areas = NULL; + Eina_List *cl; + E_Container *c; + Ecore_X_Window *vroots = NULL; + /* FIXME: Desktop names not yet implemented */ /* char **names; */ - e_hints_e16_comms_pretend(man); + e_hints_e16_comms_pretend(man); - num = eina_list_count(man->containers); + num = eina_list_count(man->containers); - vroots = calloc(num, sizeof(Ecore_X_Window)); - if (!vroots) return; - + vroots = calloc(num, sizeof(Ecore_X_Window)); + if (!vroots) return; + /* names = calloc(num, sizeof(char *));*/ - - areas = calloc(4 * num, sizeof(unsigned int)); - if (!areas) - { - free(vroots); - return; - } - - EINA_LIST_FOREACH(man->containers, cl, c) - { - areas[4 * i] = c->x; - areas[4 * i + 1] = c->y; - areas[4 * i + 2] = c->w; - areas[4 * i + 3] = c->h; - vroots[i++] = c->win; - } + areas = calloc(4 * num, sizeof(unsigned int)); + if (!areas) + { + free(vroots); + return; + } + + EINA_LIST_FOREACH(man->containers, cl, c) + { + areas[4 * i] = c->x; + areas[4 * i + 1] = c->y; + areas[4 * i + 2] = c->w; + areas[4 * i + 3] = c->h; + vroots[i++] = c->win; + } + #if 0 - ecore_x_netwm_desk_count_set(man->root, num); + ecore_x_netwm_desk_count_set(man->root, num); #endif - if (e_config->use_virtual_roots) - { - ecore_x_netwm_desk_roots_set(man->root, vroots, num); - } + if (e_config->use_virtual_roots) + { + ecore_x_netwm_desk_roots_set(man->root, vroots, num); + } #if 0 - /* No need for workarea without desktops */ - ecore_x_netwm_desk_workareas_set(man->root, num, areas); + /* No need for workarea without desktops */ + ecore_x_netwm_desk_workareas_set(man->root, num, areas); #endif - free(vroots); - free(areas); + free(vroots); + free(areas); } /* FIXME, this should set the list in map order, not stack order */ @@ -280,48 +280,48 @@ /* Get client count by adding client lists on all containers */ EINA_LIST_FOREACH(e_manager_list(), ml, m) { - EINA_LIST_FOREACH(m->containers, cl, c) - { - num += e_container_borders_count(c); - } + EINA_LIST_FOREACH(m->containers, cl, c) + { + num += e_container_borders_count(c); + } } - + clients = calloc(num, sizeof(Ecore_X_Window)); if (!clients) - return; + return; /* Fetch window IDs and add to array */ if (num > 0) { - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - i = 0; - EINA_LIST_FOREACH(m->containers, cl, c) - { - bl = e_container_border_list_first(c); - while ((b = e_container_border_list_next(bl))) - clients[i++] = b->client.win; - e_container_border_list_free(bl); - } - if (i > 0) - { - ecore_x_netwm_client_list_stacking_set(m->root, clients, i); - ecore_x_netwm_client_list_set(m->root, clients, i); - } - else - { - ecore_x_netwm_client_list_set(m->root, NULL, 0); - ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); - } - } + EINA_LIST_FOREACH(e_manager_list(), ml, m) + { + i = 0; + EINA_LIST_FOREACH(m->containers, cl, c) + { + bl = e_container_border_list_first(c); + while ((b = e_container_border_list_next(bl))) + clients[i++] = b->client.win; + e_container_border_list_free(bl); + } + if (i > 0) + { + ecore_x_netwm_client_list_stacking_set(m->root, clients, i); + ecore_x_netwm_client_list_set(m->root, clients, i); + } + else + { + ecore_x_netwm_client_list_set(m->root, NULL, 0); + ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); + } + } } else { - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - ecore_x_netwm_client_list_set(m->root, NULL, 0); - ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); - } + EINA_LIST_FOREACH(e_manager_list(), ml, m) + { + ecore_x_netwm_client_list_set(m->root, NULL, 0); + ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); + } } E_FREE(clients); } @@ -342,63 +342,64 @@ /* Get client count */ EINA_LIST_FOREACH(e_manager_list(), ml, m) { - EINA_LIST_FOREACH(m->containers, cl, c) - { - num += e_container_borders_count(c); - } + EINA_LIST_FOREACH(m->containers, cl, c) + { + num += e_container_borders_count(c); + } } if (num > 0) { - clients = calloc(num, sizeof(Ecore_X_Window)); - if (!clients) return; - - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - EINA_LIST_FOREACH(m->containers, cl, c) - { - bl = e_container_border_list_first(c); - while ((b = e_container_border_list_next(bl))) - { - if (i >= num) - { - e_error_message_show("e_hints.c: e_hints_client_stacking_set()\n" - "\n" - "Window list size greater than window count.\n" - "This is really bad.\n" - "Please report this.\n"); - break; - } - clients[i++] = b->win; - } - e_container_border_list_free(bl); - } - } - if (i < num) - { - e_error_message_show("e_hints.c: e_hints_client_stacking_set()\n" - "\n" - "Window list size less than window count.\n" - "This is strange, but not harmful.\n" - "Please report this.\n"); - } - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - ecore_x_netwm_client_list_stacking_set(m->root, clients, num); - } - E_FREE(clients); + clients = calloc(num, sizeof(Ecore_X_Window)); + if (!clients) return; + + EINA_LIST_FOREACH(e_manager_list(), ml, m) + { + EINA_LIST_FOREACH(m->containers, cl, c) + { + bl = e_container_border_list_first(c); + while ((b = e_container_border_list_next(bl))) + { + if (i >= num) + { + e_error_message_show("e_hints.c: e_hints_client_stacking_set()\n" + "\n" + "Window list size greater than window count.\n" + "This is really bad.\n" + "Please report this.\n"); + break; + } + clients[i++] = b->win; + } + e_container_border_list_free(bl); + } + } + if (i < num) + { + e_error_message_show("e_hints.c: e_hints_client_stacking_set()\n" + "\n" + "Window list size less than window count.\n" + "This is strange, but not harmful.\n" + "Please report this.\n"); + } + EINA_LIST_FOREACH(e_manager_list(), ml, m) + { + ecore_x_netwm_client_list_stacking_set(m->root, clients, num); + } + E_FREE(clients); } else { - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); - } + EINA_LIST_FOREACH(e_manager_list(), ml, m) + { + ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0); + } } } EAPI void -e_hints_active_window_set(E_Manager *man, E_Border *bd) +e_hints_active_window_set(E_Manager *man, + E_Border *bd) { E_OBJECT_CHECK(man); if (bd) @@ -417,34 +418,34 @@ if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_NONE) { - if (bd->client.netwm.state.hidden) - bd->client.icccm.state = ECORE_X_WINDOW_STATE_HINT_ICONIC; - else - bd->client.icccm.state = ECORE_X_WINDOW_STATE_HINT_NORMAL; + if (bd->client.netwm.state.hidden) + bd->client.icccm.state = ECORE_X_WINDOW_STATE_HINT_ICONIC; + else + bd->client.icccm.state = ECORE_X_WINDOW_STATE_HINT_NORMAL; } if ((rem) && (rem->prop.layer)) { - bd->layer = rem->prop.layer; - e_border_layer_set(bd, bd->layer); + bd->layer = rem->prop.layer; + e_border_layer_set(bd, bd->layer); } else { - if (!bd->lock_client_stacking) - { - if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP) - e_border_layer_set(bd, 0); - else if (bd->client.netwm.state.stacking == E_STACKING_BELOW) - e_border_layer_set(bd, 50); - else if (bd->client.netwm.state.stacking == E_STACKING_ABOVE) - e_border_layer_set(bd, 150); - else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) - e_border_layer_set(bd, 150); - else - e_border_layer_set(bd, 100); - } - else - e_border_raise(bd); + if (!bd->lock_client_stacking) + { + if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP) + e_border_layer_set(bd, 0); + else if (bd->client.netwm.state.stacking == E_STACKING_BELOW) + e_border_layer_set(bd, 50); + else if (bd->client.netwm.state.stacking == E_STACKING_ABOVE) + e_border_layer_set(bd, 150); + else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) + e_border_layer_set(bd, 150); + else + e_border_layer_set(bd, 100); + } + else + e_border_raise(bd); } if ((bd->parent) && (e_config->transient.layer)) @@ -454,123 +455,123 @@ /* Ignore this, E has incompatible desktop setup */ if (ecore_x_netwm_desktop_get(bd->client.win, &bd->client.netwm.desktop)) { - if (bd->client.netwm.desktop == 0xffffffff) - { - e_border_stick(bd); - } - else if (bd->client.netwm.desktop < (bd->zone->desk_x_count * bd->zone->desk_y_count)) - { - E_Desk *desk; + if (bd->client.netwm.desktop == 0xffffffff) + { + e_border_stick(bd); + } + else if (bd->client.netwm.desktop < (bd->zone->desk_x_count * bd->zone->desk_y_count)) + { + E_Desk *desk; - desk = e_desk_at_pos_get(bd->zone, bd->client.netwm.desktop); - if (desk) - e_border_desk_set(bd, desk); - } - else - { - /* Update netwm desktop with current desktop */ - e_hints_window_desktop_set(bd); - } + desk = e_desk_at_pos_get(bd->zone, bd->client.netwm.desktop); + if (desk) + e_border_desk_set(bd, desk); + } + else + { + /* Update netwm desktop with current desktop */ + e_hints_window_desktop_set(bd); + } } else { - /* Update netwm desktop with current desktop */ - e_hints_window_desktop_set(bd); + /* Update netwm desktop with current desktop */ + e_hints_window_desktop_set(bd); } #endif - { - char *str = NULL; - - if ((ecore_x_netwm_startup_id_get(bd->client.win, &str) && (str)) || - ((bd->client.icccm.client_leader > 0) && - ecore_x_netwm_startup_id_get(bd->client.icccm.client_leader, &str) && (str)) - ) - { - if (!strncmp(str, "E_START|", 8)) - { - int id; + { + char *str = NULL; - id = atoi(str + 8); - if (id > 0) bd->client.netwm.startup_id = id; - } - free(str); - } - } + if ((ecore_x_netwm_startup_id_get(bd->client.win, &str) && (str)) || + ((bd->client.icccm.client_leader > 0) && + ecore_x_netwm_startup_id_get(bd->client.icccm.client_leader, &str) && (str)) + ) + { + if (!strncmp(str, "E_START|", 8)) + { + int id; + + id = atoi(str + 8); + if (id > 0) bd->client.netwm.startup_id = id; + } + free(str); + } + } /* It's ok not to have fetch flag, should only be set on startup * and not changed. */ if (!ecore_x_netwm_pid_get(bd->client.win, &bd->client.netwm.pid)) { if (bd->client.icccm.client_leader) - { - if (!ecore_x_netwm_pid_get(bd->client.icccm.client_leader, &bd->client.netwm.pid)) - bd->client.netwm.pid = -1; - } - else - bd->client.netwm.pid = -1; + { + if (!ecore_x_netwm_pid_get(bd->client.icccm.client_leader, &bd->client.netwm.pid)) + bd->client.netwm.pid = -1; + } + else + bd->client.netwm.pid = -1; } if (bd->client.netwm.state.sticky) { - if (!bd->lock_client_sticky) - e_border_stick(bd); - else - e_hints_window_sticky_set(bd, 0); + if (!bd->lock_client_sticky) + e_border_stick(bd); + else + e_hints_window_sticky_set(bd, 0); } if (bd->client.netwm.state.shaded) { if (!bd->lock_client_shade) - e_border_shade(bd, e_hints_window_shade_direction_get(bd)); - else - e_hints_window_shaded_set(bd, 0); + e_border_shade(bd, e_hints_window_shade_direction_get(bd)); + else + e_hints_window_shaded_set(bd, 0); } if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) { - if (!bd->lock_client_maximize) - { - e_hints_window_size_get(bd); - e_border_maximize(bd, e_config->maximize_policy); - } - else - e_hints_window_maximized_set(bd, 0, 0); + if (!bd->lock_client_maximize) + { + e_hints_window_size_get(bd); + e_border_maximize(bd, e_config->maximize_policy); + } + else + e_hints_window_maximized_set(bd, 0, 0); } else if (bd->client.netwm.state.maximized_h) { - if (!bd->lock_client_maximize) - { - e_hints_window_size_get(bd); - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); - } - else - e_hints_window_maximized_set(bd, 0, 0); + if (!bd->lock_client_maximize) + { + e_hints_window_size_get(bd); + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); + } + else + e_hints_window_maximized_set(bd, 0, 0); } else if (bd->client.netwm.state.maximized_v) { - if (!bd->lock_client_maximize) - { - e_hints_window_size_get(bd); - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); - } - else - e_hints_window_maximized_set(bd, 0, 0); + if (!bd->lock_client_maximize) + { + e_hints_window_size_get(bd); + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); + } + else + e_hints_window_maximized_set(bd, 0, 0); } if (bd->client.netwm.state.fullscreen) { - if (!bd->lock_client_fullscreen) - { - e_hints_window_size_get(bd); - e_border_fullscreen(bd, e_config->fullscreen_policy); - } - else - e_hints_window_fullscreen_set(bd, 0); + if (!bd->lock_client_fullscreen) + { + e_hints_window_size_get(bd); + e_border_fullscreen(bd, e_config->fullscreen_policy); + } + else + e_hints_window_fullscreen_set(bd, 0); } if ((bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) && (bd->client.netwm.state.hidden)) { - if (!bd->lock_client_iconify) - e_border_iconify(bd); - else - e_hints_window_visible_set(bd); + if (!bd->lock_client_iconify) + e_border_iconify(bd); + else + e_hints_window_visible_set(bd); } else if ((bd->parent) && (e_config->transient.iconify) && (bd->parent->iconic)) e_border_iconify(bd); @@ -579,13 +580,13 @@ else if (bd->desk == e_desk_current_get(bd->zone)) e_border_show(bd); /* e hints */ -/* +/* if (bd->client.e.state.centered) { e_border_center(bd); } */ - /* Update stacking */ +/* Update stacking */ e_hints_client_list_set(); e_hints_client_stacking_set(); } @@ -618,14 +619,16 @@ switch (bd->client.netwm.state.stacking) { case E_STACKING_ABOVE: - state[num++] = ECORE_X_WINDOW_STATE_ABOVE; - break; + state[num++] = ECORE_X_WINDOW_STATE_ABOVE; + break; + case E_STACKING_BELOW: - state[num++] = ECORE_X_WINDOW_STATE_BELOW; - break; + state[num++] = ECORE_X_WINDOW_STATE_BELOW; + break; + case E_STACKING_NONE: default: - break; + break; } ecore_x_netwm_window_state_set(bd->client.win, state, num); } @@ -671,291 +674,325 @@ { Ecore_X_Window_Type *types = NULL; int num, i, j; - + num = ecore_x_netwm_window_types_get(bd->client.win, &types); if (bd->client.netwm.extra_types) { - free(bd->client.netwm.extra_types); - bd->client.netwm.extra_types = NULL; - bd->client.netwm.extra_types_num = 0; + free(bd->client.netwm.extra_types); + bd->client.netwm.extra_types = NULL; + bd->client.netwm.extra_types_num = 0; } - if (num == 0) + if (num == 0) bd->client.netwm.type = ECORE_X_WINDOW_TYPE_UNKNOWN; else { - j = 0; - bd->client.netwm.type = types[j]; - j++; - while ((j < num) && - (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_UNKNOWN)) - { - j++; - bd->client.netwm.type = types[j]; - } - if (num > j) - { - bd->client.netwm.extra_types = - malloc((num - j) * sizeof(Ecore_X_Window_Type)); - if (bd->client.netwm.extra_types) - { - for (i = j + 1; i < num; i++) - bd->client.netwm.extra_types[i - (j + 1)] = types[i]; - bd->client.netwm.extra_types_num = num - j; - } - } - free(types); + j = 0; + bd->client.netwm.type = types[j]; + j++; + while ((j < num) && + (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_UNKNOWN)) + { + j++; + bd->client.netwm.type = types[j]; + } + if (num > j) + { + bd->client.netwm.extra_types = + malloc((num - j) * sizeof(Ecore_X_Window_Type)); + if (bd->client.netwm.extra_types) + { + for (i = j + 1; i < num; i++) + bd->client.netwm.extra_types[i - (j + 1)] = types[i]; + bd->client.netwm.extra_types_num = num - j; + } + } + free(types); } } EAPI void -e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state, - Ecore_X_Window_State_Action action) +e_hints_window_state_update(E_Border *bd, + Ecore_X_Window_State state, + Ecore_X_Window_State_Action action) { switch (state) { case ECORE_X_WINDOW_STATE_ICONIFIED: - if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return; - if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return; - if (bd->lock_client_iconify) return; - e_border_iconify(bd); - break; + if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return; + if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return; + if (bd->lock_client_iconify) return; + e_border_iconify(bd); + break; + case ECORE_X_WINDOW_STATE_MODAL: - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - if (bd->client.netwm.state.modal) - { - bd->client.netwm.state.modal = 0; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - if (!bd->client.netwm.state.modal) - { - bd->client.netwm.state.modal = 1; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - bd->client.netwm.state.modal = !bd->client.netwm.state.modal; - bd->client.netwm.update.state = 1; - bd->changed = 1; - break; - } - break; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + if (bd->client.netwm.state.modal) + { + bd->client.netwm.state.modal = 0; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + if (!bd->client.netwm.state.modal) + { + bd->client.netwm.state.modal = 1; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + bd->client.netwm.state.modal = !bd->client.netwm.state.modal; + bd->client.netwm.update.state = 1; + bd->changed = 1; + break; + } + break; + case ECORE_X_WINDOW_STATE_STICKY: - if (bd->lock_client_sticky) return; - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_border_unstick(bd); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_border_stick(bd); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->sticky) - e_border_unstick(bd); - else - e_border_stick(bd); - break; - } - break; + if (bd->lock_client_sticky) return; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + e_border_unstick(bd); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + e_border_stick(bd); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->sticky) + e_border_unstick(bd); + else + e_border_stick(bd); + break; + } + break; + case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT: - if (bd->lock_client_maximize) return; - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - if (bd->maximized & E_MAXIMIZE_VERTICAL) - e_border_unmaximize(bd, E_MAXIMIZE_VERTICAL); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - if (!(bd->maximized & E_MAXIMIZE_VERTICAL)) - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->maximized & E_MAXIMIZE_VERTICAL) - e_border_unmaximize(bd, E_MAXIMIZE_VERTICAL); - else - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); - break; - } - break; + if (bd->lock_client_maximize) return; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + if (bd->maximized & E_MAXIMIZE_VERTICAL) + e_border_unmaximize(bd, E_MAXIMIZE_VERTICAL); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + if (!(bd->maximized & E_MAXIMIZE_VERTICAL)) + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->maximized & E_MAXIMIZE_VERTICAL) + e_border_unmaximize(bd, E_MAXIMIZE_VERTICAL); + else + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL); + break; + } + break; + case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ: - if (bd->lock_client_maximize) return; - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - if (bd->maximized & E_MAXIMIZE_HORIZONTAL) - e_border_unmaximize(bd, E_MAXIMIZE_HORIZONTAL); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - if (!(bd->maximized & E_MAXIMIZE_HORIZONTAL)) - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->maximized & E_MAXIMIZE_HORIZONTAL) - e_border_unmaximize(bd, E_MAXIMIZE_HORIZONTAL); - else - e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); - break; - } - break; + if (bd->lock_client_maximize) return; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + if (bd->maximized & E_MAXIMIZE_HORIZONTAL) + e_border_unmaximize(bd, E_MAXIMIZE_HORIZONTAL); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + if (!(bd->maximized & E_MAXIMIZE_HORIZONTAL)) + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->maximized & E_MAXIMIZE_HORIZONTAL) + e_border_unmaximize(bd, E_MAXIMIZE_HORIZONTAL); + else + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL); + break; + } + break; + case ECORE_X_WINDOW_STATE_SHADED: - if (bd->lock_client_shade) return; - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_border_unshade(bd, e_hints_window_shade_direction_get(bd)); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_border_shade(bd, e_hints_window_shade_direction_get(bd)); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->shaded) - e_border_unshade(bd, e_hints_window_shade_direction_get(bd)); - else - e_border_shade(bd, e_hints_window_shade_direction_get(bd)); - break; - } - break; + if (bd->lock_client_shade) return; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + e_border_unshade(bd, e_hints_window_shade_direction_get(bd)); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + e_border_shade(bd, e_hints_window_shade_direction_get(bd)); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->shaded) + e_border_unshade(bd, e_hints_window_shade_direction_get(bd)); + else + e_border_shade(bd, e_hints_window_shade_direction_get(bd)); + break; + } + break; + case ECORE_X_WINDOW_STATE_SKIP_TASKBAR: - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - if (bd->client.netwm.state.skip_taskbar) - { - bd->client.netwm.state.skip_taskbar = 0; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - if (!bd->client.netwm.state.skip_taskbar) - { - bd->client.netwm.state.skip_taskbar = 1; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - bd->client.netwm.state.skip_taskbar = !bd->client.netwm.state.skip_taskbar; - bd->client.netwm.update.state = 1; - bd->changed = 1; - break; - } - break; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + if (bd->client.netwm.state.skip_taskbar) + { + bd->client.netwm.state.skip_taskbar = 0; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + if (!bd->client.netwm.state.skip_taskbar) + { + bd->client.netwm.state.skip_taskbar = 1; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + bd->client.netwm.state.skip_taskbar = !bd->client.netwm.state.skip_taskbar; + bd->client.netwm.update.state = 1; + bd->changed = 1; + break; + } + break; + case ECORE_X_WINDOW_STATE_SKIP_PAGER: - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - if (bd->client.netwm.state.skip_pager) - { - bd->client.netwm.state.skip_pager = 0; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - if (!bd->client.netwm.state.skip_pager) - { - bd->client.netwm.state.skip_pager = 1; - bd->client.netwm.update.state = 1; - bd->changed = 1; - } - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - bd->client.netwm.state.skip_pager = !bd->client.netwm.state.skip_pager; - bd->client.netwm.update.state = 1; - bd->changed = 1; - break; - } - break; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + if (bd->client.netwm.state.skip_pager) + { + bd->client.netwm.state.skip_pager = 0; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + if (!bd->client.netwm.state.skip_pager) + { + bd->client.netwm.state.skip_pager = 1; + bd->client.netwm.update.state = 1; + bd->changed = 1; + } + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + bd->client.netwm.state.skip_pager = !bd->client.netwm.state.skip_pager; + bd->client.netwm.update.state = 1; + bd->changed = 1; + break; + } + break; + case ECORE_X_WINDOW_STATE_HIDDEN: - /* Ignore */ - break; + /* Ignore */ + break; + case ECORE_X_WINDOW_STATE_FULLSCREEN: - if (bd->lock_client_fullscreen) return; - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_border_unfullscreen(bd); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_border_fullscreen(bd, e_config->fullscreen_policy); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->fullscreen) - e_border_unfullscreen(bd); - else - e_border_fullscreen(bd, e_config->fullscreen_policy); - break; - } - break; + if (bd->lock_client_fullscreen) return; + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + e_border_unfullscreen(bd); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + e_border_fullscreen(bd, e_config->fullscreen_policy); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->fullscreen) + e_border_unfullscreen(bd); + else + e_border_fullscreen(bd, e_config->fullscreen_policy); + break; + } + break; + case ECORE_X_WINDOW_STATE_ABOVE: - if (bd->lock_client_stacking) return; - /* FIXME: Should this require that BELOW is set to 0 first, or just - * do it? */ - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_border_layer_set(bd, 100); - e_hints_window_stacking_set(bd, E_STACKING_NONE); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - e_border_layer_set(bd, 150); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->layer == 150) - { - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); - } - else - { - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - e_border_layer_set(bd, 150); - } - break; - } - break; + if (bd->lock_client_stacking) return; + /* FIXME: Should this require that BELOW is set to 0 first, or just + * do it? */ + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + e_border_layer_set(bd, 100); + e_hints_window_stacking_set(bd, E_STACKING_NONE); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + e_hints_window_stacking_set(bd, E_STACKING_ABOVE); + e_border_layer_set(bd, 150); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->layer == 150) + { + e_hints_window_stacking_set(bd, E_STACKING_NONE); + e_border_layer_set(bd, 100); + } + else + { + e_hints_window_stacking_set(bd, E_STACKING_ABOVE); + e_border_layer_set(bd, 150); + } + break; + } + break; + case ECORE_X_WINDOW_STATE_BELOW: - if (bd->lock_client_stacking) return; - /* FIXME: Should this require that ABOVE is set to 0 first, or just - * do it? */ - switch (action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_hints_window_stacking_set(bd, E_STACKING_BELOW); - e_border_layer_set(bd, 50); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->layer == 50) - { - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); - } - else - { - e_hints_window_stacking_set(bd, E_STACKING_BELOW); - e_border_layer_set(bd, 50); - } - break; - } - break; + if (bd->lock_client_stacking) return; + /* FIXME: Should this require that ABOVE is set to 0 first, or just + * do it? */ + switch (action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + e_hints_window_stacking_set(bd, E_STACKING_NONE); + e_border_layer_set(bd, 100); + break; + + case ECORE_X_WINDOW_STATE_ACTION_ADD: + e_hints_window_stacking_set(bd, E_STACKING_BELOW); + e_border_layer_set(bd, 50); + break; + + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + if (bd->layer == 50) + { + e_hints_window_stacking_set(bd, E_STACKING_NONE); + e_border_layer_set(bd, 100); + } + else + { + e_hints_window_stacking_set(bd, E_STACKING_BELOW); + e_border_layer_set(bd, 50); + } + break; + } + break; + case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION: - /* FIXME */ - break; + /* FIXME */ + break; + case ECORE_X_WINDOW_STATE_UNKNOWN: - /* Ignore */ - break; + /* Ignore */ + break; } } @@ -979,87 +1016,112 @@ ecore_x_netwm_window_state_get(bd->client.win, &state, &num); if (state) { - for (i = 0; i < num; i++) - { - switch (state[i]) - { - case ECORE_X_WINDOW_STATE_ICONIFIED: - /* Ignore */ - break; - case ECORE_X_WINDOW_STATE_MODAL: - bd->client.netwm.state.modal = 1; - break; - case ECORE_X_WINDOW_STATE_STICKY: - bd->client.netwm.state.sticky = 1; - break; - case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT: - bd->client.netwm.state.maximized_v = 1; - break; - case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ: - bd->client.netwm.state.maximized_h = 1; - break; - case ECORE_X_WINDOW_STATE_SHADED: - bd->client.netwm.state.shaded = 1; - break; - case ECORE_X_WINDOW_STATE_SKIP_TASKBAR: - bd->client.netwm.state.skip_taskbar = 1; - break; - case ECORE_X_WINDOW_STATE_SKIP_PAGER: - bd->client.netwm.state.skip_pager = 1; - break; - case ECORE_X_WINDOW_STATE_HIDDEN: - bd->client.netwm.state.hidden = 1; - break; - case ECORE_X_WINDOW_STATE_FULLSCREEN: - bd->client.netwm.state.fullscreen = 1; - break; - case ECORE_X_WINDOW_STATE_ABOVE: - bd->client.netwm.state.stacking = E_STACKING_ABOVE; - break; - case ECORE_X_WINDOW_STATE_BELOW: - bd->client.netwm.state.stacking = E_STACKING_BELOW; - break; - case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION: - /* FIXME */ - break; - case ECORE_X_WINDOW_STATE_UNKNOWN: - /* Ignore */ - break; - } - } - free(state); + for (i = 0; i < num; i++) + { + switch (state[i]) + { + case ECORE_X_WINDOW_STATE_ICONIFIED: + /* Ignore */ + break; + + case ECORE_X_WINDOW_STATE_MODAL: + bd->client.netwm.state.modal = 1; + break; + + case ECORE_X_WINDOW_STATE_STICKY: + bd->client.netwm.state.sticky = 1; + break; + + case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT: + bd->client.netwm.state.maximized_v = 1; + break; + + case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ: + bd->client.netwm.state.maximized_h = 1; + break; + + case ECORE_X_WINDOW_STATE_SHADED: + bd->client.netwm.state.shaded = 1; + break; + + case ECORE_X_WINDOW_STATE_SKIP_TASKBAR: + bd->client.netwm.state.skip_taskbar = 1; + break; + + case ECORE_X_WINDOW_STATE_SKIP_PAGER: + bd->client.netwm.state.skip_pager = 1; + break; + + case ECORE_X_WINDOW_STATE_HIDDEN: + bd->client.netwm.state.hidden = 1; + break; + + case ECORE_X_WINDOW_STATE_FULLSCREEN: + bd->client.netwm.state.fullscreen = 1; + break; + + case ECORE_X_WINDOW_STATE_ABOVE: + bd->client.netwm.state.stacking = E_STACKING_ABOVE; + break; + + case ECORE_X_WINDOW_STATE_BELOW: + bd->client.netwm.state.stacking = E_STACKING_BELOW; + break; + + case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION: + /* FIXME */ + break; + + case ECORE_X_WINDOW_STATE_UNKNOWN: + /* Ignore */ + break; + } + } + free(state); } } EAPI void -e_hints_allowed_action_update(E_Border *bd __UNUSED__, Ecore_X_Action action) +e_hints_allowed_action_update(E_Border *bd __UNUSED__, + Ecore_X_Action action) { switch (action) { case ECORE_X_ACTION_MOVE: - break; + break; + case ECORE_X_ACTION_RESIZE: - break; + break; + case ECORE_X_ACTION_MINIMIZE: - break; + break; + case ECORE_X_ACTION_SHADE: - break; + break; + case ECORE_X_ACTION_STICK: - break; + break; + case ECORE_X_ACTION_MAXIMIZE_HORZ: - break; + break; + case ECORE_X_ACTION_MAXIMIZE_VERT: - break; + break; + case ECORE_X_ACTION_FULLSCREEN: - break; + break; + case ECORE_X_ACTION_CHANGE_DESKTOP: - break; + break; + case ECORE_X_ACTION_CLOSE: - break; + break; + case ECORE_X_ACTION_ABOVE: - break; + break; + case ECORE_X_ACTION_BELOW: - break; + break; } } @@ -1067,8 +1129,8 @@ e_hints_allowed_action_get(E_Border *bd) { Ecore_X_Action *action; - unsigned int i; - unsigned int num; + unsigned int i; + unsigned int num; bd->client.netwm.action.move = 0; bd->client.netwm.action.resize = 0; @@ -1084,47 +1146,58 @@ ecore_x_netwm_allowed_action_get(bd->client.win, &action, &num); if (action) { - for (i = 0; i < num; i++) - { - switch (action[i]) - { - case ECORE_X_ACTION_MOVE: - bd->client.netwm.action.move = 1; - break; - case ECORE_X_ACTION_RESIZE: - bd->client.netwm.action.resize = 1; - break; - case ECORE_X_ACTION_MINIMIZE: - bd->client.netwm.action.minimize = 1; - break; - case ECORE_X_ACTION_SHADE: - bd->client.netwm.action.shade = 1; - break; - case ECORE_X_ACTION_STICK: - bd->client.netwm.action.stick = 1; - break; - case ECORE_X_ACTION_MAXIMIZE_HORZ: - bd->client.netwm.action.maximized_h = 1; - break; - case ECORE_X_ACTION_MAXIMIZE_VERT: - bd->client.netwm.action.maximized_v = 1; - break; - case ECORE_X_ACTION_FULLSCREEN: - bd->client.netwm.action.fullscreen = 1; - break; - case ECORE_X_ACTION_CHANGE_DESKTOP: - bd->client.netwm.action.change_desktop = 1; - break; - case ECORE_X_ACTION_CLOSE: - bd->client.netwm.action.close = 1; - break; - case ECORE_X_ACTION_ABOVE: - break; - case ECORE_X_ACTION_BELOW: - break; - } - } - free(action); + for (i = 0; i < num; i++) + { + switch (action[i]) + { + case ECORE_X_ACTION_MOVE: + ... [truncated message content] |
From: Enlightenment S. <no-...@en...> - 2010-12-23 00:37:00
|
Log: make this more portable in case the number of states changes in the future, also outdent and make function params more explicit Author: discomfitor Date: 2010-12-22 16:36:53 -0800 (Wed, 22 Dec 2010) New Revision: 55727 Trac: http://trac.enlightenment.org/e/changeset/55727 Modified: trunk/e/src/bin/e_hints.c Modified: trunk/e/src/bin/e_hints.c =================================================================== --- trunk/e/src/bin/e_hints.c 2010-12-23 00:28:49 UTC (rev 55726) +++ trunk/e/src/bin/e_hints.c 2010-12-23 00:36:53 UTC (rev 55727) @@ -1432,18 +1432,16 @@ { /* Remember to update the count if we add more states! */ Ecore_X_Atom state[1]; - int num; + int num, i; memset(state, 0, sizeof(state)); - num = ecore_x_window_prop_card32_get(bd->client.win, E_ATOM_WINDOW_STATE, state, 1); - if (num) + num = ecore_x_window_prop_card32_get(bd->client.win, E_ATOM_WINDOW_STATE, state, sizeof(state)); + if (!num) return; + + for (i = 0; (i < num) && (i < sizeof(state)); i++) { - int i; - for (i = 0; i < num; i++) - { - if (state[i] == E_ATOM_WINDOW_STATE_CENTERED) - bd->client.e.state.centered = 1; - } + if (state[i] == E_ATOM_WINDOW_STATE_CENTERED) + bd->client.e.state.centered = 1; } } |
From: Enlightenment S. <no-...@en...> - 2010-12-23 00:41:25
|
Log: add explicit null check (for hahas?) Author: discomfitor Date: 2010-12-22 16:41:19 -0800 (Wed, 22 Dec 2010) New Revision: 55728 Trac: http://trac.enlightenment.org/e/changeset/55728 Modified: trunk/e/src/bin/e_int_config_modules.c Modified: trunk/e/src/bin/e_int_config_modules.c =================================================================== --- trunk/e/src/bin/e_int_config_modules.c 2010-12-23 00:36:53 UTC (rev 55727) +++ trunk/e/src/bin/e_int_config_modules.c 2010-12-23 00:41:19 UTC (rev 55728) @@ -404,8 +404,11 @@ { const CFTypes *itr; char name[1024], icon[1024]; - size_t key_len = strlen(key); + size_t key_len; + if (!key) return NULL; + + key_len = strlen(key); for (itr = _types; itr->key_len > 0; itr++) { if (key_len != itr->key_len) continue; |