summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO7
-rw-r--r--po/fr.po23
-rw-r--r--src/bin/e_acpi.c18
-rw-r--r--src/bin/e_client.c47
-rw-r--r--src/bin/e_client.h4
-rw-r--r--src/bin/e_comp.c10
-rw-r--r--src/bin/e_comp_object.c10
-rw-r--r--src/bin/e_comp_x.c8
-rw-r--r--src/bin/e_hints.c20
-rw-r--r--src/bin/e_hints.h3
-rw-r--r--src/bin/e_pointer.c17
-rw-r--r--src/bin/e_startup.c2
12 files changed, 128 insertions, 41 deletions
diff --git a/TODO b/TODO
index e39e1d5..f688edc 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,5 @@
1TODO: 1TODO:
2* scriptlets: stdin/out module that provides gui services to some 2 scriptlets: stdin/out module that provides gui services to some
3 back-end script or process where e just talks via stdin/out. 3 back-end script or process where e just talks via stdin/out.
4 things to provide: 4 things to provide:
5 * only run scriptlet every N seconds to poll then send back data 5 * only run scriptlet every N seconds to poll then send back data
@@ -227,6 +227,11 @@ TODO:
227 * having a root helper for root-only tasks that stays around if it 227 * having a root helper for root-only tasks that stays around if it
228 is needed as opposed to enlightenment_sys that runs then exits 228 is needed as opposed to enlightenment_sys that runs then exits
229* synergy-like e <-> e mouse, kbd, cnp, dnd proxy/sharing 229* synergy-like e <-> e mouse, kbd, cnp, dnd proxy/sharing
230* cpufreq - move to config dialog for settings
231 * set governor for ac vs battery (or powerstate levels)
232 * set pstate min and max for ac vs battery (or power state levels)
233* set backlight and dim timeout per powersave level
234* battery - set powersave levels based on ac or battery level
230* efl: flat theme redo 235* efl: flat theme redo
231* efl/eo: start using efl loop as core loop 236* efl/eo: start using efl loop as core loop
232 * begin to move some login out into efl threads+loops 237 * begin to move some login out into efl threads+loops
diff --git a/po/fr.po b/po/fr.po
index ebd175a..a9b9eea 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -15,10 +15,10 @@
15# similar <similar@orange.fr>, 2019. 15# similar <similar@orange.fr>, 2019.
16msgid "" 16msgid ""
17msgstr "" 17msgstr ""
18"Project-Id-Version: Enlightenment DR17\n" 18"Project-Id-Version: Enlightenment DR23\n"
19"Report-Msgid-Bugs-To: \n" 19"Report-Msgid-Bugs-To: enlightenment-intl@lists.sourceforge.net\n"
20"POT-Creation-Date: 2019-08-23 16:18+0100\n" 20"POT-Creation-Date: 2019-08-23 16:18+0100\n"
21"PO-Revision-Date: 2019-08-23 21:14+0200\n" 21"PO-Revision-Date: 2019-10-26 15:11+0200\n"
22"Last-Translator: Philippe Jean Guillaumie <similar@orange.fr>\n" 22"Last-Translator: Philippe Jean Guillaumie <similar@orange.fr>\n"
23"Language-Team: French\n" 23"Language-Team: French\n"
24"Language: fr\n" 24"Language: fr\n"
@@ -27,7 +27,7 @@ msgstr ""
27"Content-Transfer-Encoding: 8bit\n" 27"Content-Transfer-Encoding: 8bit\n"
28"Plural-Forms: nplurals=2; plural=n > 1;\n" 28"Plural-Forms: nplurals=2; plural=n > 1;\n"
29"X-Launchpad-Export-Date: 2014-09-07 06:08+0000\n" 29"X-Launchpad-Export-Date: 2014-09-07 06:08+0000\n"
30"X-Generator: Poedit 2.0.6\n" 30"X-Generator: Poedit 2.2.4\n"
31"X-Poedit-SourceCharset: utf-8\n" 31"X-Poedit-SourceCharset: utf-8\n"
32 32
33#: src/bin/e_about.c:17 33#: src/bin/e_about.c:17
@@ -2936,7 +2936,7 @@ msgstr "N'appliquer qu'à une seule fenêtre"
2936 2936
2937#: src/bin/e_int_client_remember.c:814 2937#: src/bin/e_int_client_remember.c:814
2938msgid "Always focus on start" 2938msgid "Always focus on start"
2939msgstr "Toujours focaliser au démarrage" 2939msgstr "Toujours focaliser au lancement"
2940 2940
2941#: src/bin/e_int_client_remember.c:818 2941#: src/bin/e_int_client_remember.c:818
2942msgid "Keep current properties" 2942msgid "Keep current properties"
@@ -4181,7 +4181,7 @@ msgstr ""
4181"plutôt le lanceur « enlightenment_start ». Ce dernier se\n" 4181"plutôt le lanceur « enlightenment_start ». Ce dernier se\n"
4182"charge du paramétrage des variables d'environnement,\n" 4182"charge du paramétrage des variables d'environnement,\n"
4183"des chemins et de la gestion de tout autre service\n" 4183"des chemins et de la gestion de tout autre service\n"
4184"nécessaire, avant même le démarrage d'enlightenment.\n" 4184"nécessaire, avant même le démarrage d'Enlightenment.\n"
4185 4185
4186#: src/bin/e_main.c:1566 4186#: src/bin/e_main.c:1566
4187msgid "Testing Format Support" 4187msgid "Testing Format Support"
@@ -6951,7 +6951,7 @@ msgstr "Échelle"
6951 6951
6952#: src/modules/conf_randr/e_int_config_randr2.c:1087 6952#: src/modules/conf_randr/e_int_config_randr2.c:1087
6953msgid "Restore setup on start" 6953msgid "Restore setup on start"
6954msgstr "Restaurer la configuration au lancement" 6954msgstr "Restaurer la configuration au marrage"
6955 6955
6956#: src/modules/conf_randr/e_int_config_randr2.c:1096 6956#: src/modules/conf_randr/e_int_config_randr2.c:1096
6957msgid "Monitor hotplug" 6957msgid "Monitor hotplug"
@@ -7596,7 +7596,7 @@ msgstr "Élever lorsque le focus est rétabli"
7596 7596
7597#: src/modules/conf_window_manipulation/e_int_config_focus.c:314 7597#: src/modules/conf_window_manipulation/e_int_config_focus.c:314
7598msgid "Active Window Hint Policy" 7598msgid "Active Window Hint Policy"
7599msgstr "Gestion de l'indication pour la fenêtre activze" 7599msgstr "Gestion de l'indication pour la fenêtre active"
7600 7600
7601#: src/modules/conf_window_manipulation/e_int_config_focus.c:316 7601#: src/modules/conf_window_manipulation/e_int_config_focus.c:316
7602msgid "Ignore hint" 7602msgid "Ignore hint"
@@ -9821,7 +9821,7 @@ msgid ""
9821"(not permanent)" 9821"(not permanent)"
9822msgstr "" 9822msgstr ""
9823"Le menu des accès rapides fournit les options suivantes :<ps/><hilight>Auto-" 9823"Le menu des accès rapides fournit les options suivantes :<ps/><hilight>Auto-"
9824"masquage</hilight> — masque la fenêtre si elle perd le focus<ps/" 9824"masquage</hilight> — masque la fenêtre lorsqu'elle perd le focus<ps/"
9825"><hilight>Masquer au lieu d'élever</hilight> — masque la fenêtre si elle est " 9825"><hilight>Masquer au lieu d'élever</hilight> — masque la fenêtre si elle est "
9826"activée sans prendre le focus<ps/><hilight>Mode saut</hilight> — bascule " 9826"activée sans prendre le focus<ps/><hilight>Mode saut</hilight> — bascule "
9827"vers le bureau de la fenêtre au lieu d'afficher/masquer<ps/" 9827"vers le bureau de la fenêtre au lieu d'afficher/masquer<ps/"
@@ -9879,8 +9879,7 @@ msgstr "Tutoriel des accès rapides"
9879#: src/modules/quickaccess/e_mod_quickaccess.c:1246 9879#: src/modules/quickaccess/e_mod_quickaccess.c:1246
9880msgid "This is a demo dialog used in the Quickaccess tutorial" 9880msgid "This is a demo dialog used in the Quickaccess tutorial"
9881msgstr "" 9881msgstr ""
9882"C'est la boîte de dialogue de démonstration utilisée pour le tuto des accès " 9882"C'est le dialogue de démonstration utilisée pour le tuto des accès rapides"
9883"rapides"
9884 9883
9885#: src/modules/quickaccess/e_mod_quickaccess.c:1268 9884#: src/modules/quickaccess/e_mod_quickaccess.c:1268
9886msgid "" 9885msgid ""
@@ -10532,7 +10531,7 @@ msgstr "Focus :"
10532 10531
10533#: src/modules/wizard/page_060.c:38 10532#: src/modules/wizard/page_060.c:38
10534msgid "Whenever a window is clicked" 10533msgid "Whenever a window is clicked"
10535msgstr "Lorsqu'une fenêtre est cliquée." 10534msgstr "Lorsqu'une fenêtre est cliquée"
10536 10535
10537#: src/modules/wizard/page_060.c:47 10536#: src/modules/wizard/page_060.c:47
10538msgid "Whenever the mouse enters a window" 10537msgid "Whenever the mouse enters a window"
diff --git a/src/bin/e_acpi.c b/src/bin/e_acpi.c
index f988909..39d2bba 100644
--- a/src/bin/e_acpi.c
+++ b/src/bin/e_acpi.c
@@ -125,6 +125,18 @@ static E_ACPI_Device_Multiplexed _devices_multiplexed[] =
125/* public variables */ 125/* public variables */
126E_API int E_EVENT_ACPI = 0; 126E_API int E_EVENT_ACPI = 0;
127 127
128static Eina_Bool
129_acpi_error_cb(void *data EINA_UNUSED)
130{
131 e_util_dialog_show
132 (_("ACPI Error"),
133 _("You seem to have an ACPI based system, but<br>"
134 "<hilight>acpid</hilight> does not seem to be running or<br>"
135 "contactable. Perhaps enable the <hilight>acpid</hilight><br>"
136 "service on your system?"));
137 return EINA_FALSE;
138}
139
128/* public functions */ 140/* public functions */
129EINTERN int 141EINTERN int
130e_acpi_init(void) 142e_acpi_init(void)
@@ -135,11 +147,7 @@ e_acpi_init(void)
135 if (!ecore_file_exists("/var/run/acpid.socket")) 147 if (!ecore_file_exists("/var/run/acpid.socket"))
136 { 148 {
137 if (ecore_file_exists("/proc/acpi")) 149 if (ecore_file_exists("/proc/acpi"))
138 e_util_dialog_show(_("Error"), 150 ecore_timer_add(5.0, _acpi_error_cb, NULL);
139 _("You seem to have an ACPI based system, but<br>"
140 "<hilight>acpid</hilight> does not seem to be running or<br>"
141 "contactable. Perhaps enable the <hilight>acpid</hilight><br>"
142 "service on your system?"));
143 return 1; 151 return 1;
144 } 152 }
145 153
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index e6b2ff7..2b2bcf6 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2195,6 +2195,29 @@ _e_client_eval(E_Client *ec)
2195 } 2195 }
2196 if (!ec->desktop) 2196 if (!ec->desktop)
2197 { 2197 {
2198 if (ec->steam.steam_game_id)
2199 {
2200 Efreet_Desktop *d;
2201 Eina_List *desks = efreet_util_desktop_name_glob_list("*");
2202 EINA_LIST_FREE(desks, d)
2203 {
2204 if (!d->exec) continue;
2205 if (!strncmp(d->exec, "steam ", 6))
2206 {
2207 const char *st = strstr(d->exec, "steam://rungameid/");
2208 if (st)
2209 {
2210 st += strlen("steam://rungameid/");
2211 unsigned int id = atoi(st);
2212 if (id == ec->steam.steam_game_id)
2213 ec->desktop = d;
2214 }
2215 }
2216 }
2217 }
2218 }
2219 if (!ec->desktop)
2220 {
2198 E_Exec_Instance *inst; 2221 E_Exec_Instance *inst;
2199 2222
2200 inst = e_exec_startup_id_pid_instance_find(ec->netwm.startup_id, 2223 inst = e_exec_startup_id_pid_instance_find(ec->netwm.startup_id,
@@ -2227,9 +2250,17 @@ _e_client_eval(E_Client *ec)
2227 } 2250 }
2228 if (!ec->desktop) 2251 if (!ec->desktop)
2229 { 2252 {
2253 // special case hacks for specific apps that just don't do things
2254 // right so we have to work around them
2255 if (ec->icccm.class && ec->icccm.name &&
2256 (!strcmp(ec->icccm.class, "Steam")) &&
2257 (!strcmp(ec->icccm.name, "Steam")))
2258 {
2259 ec->desktop = efreet_util_desktop_file_id_find("steam.desktop");
2260 }
2230 /* libreoffice and maybe others match window class 2261 /* libreoffice and maybe others match window class
2231 with .desktop file name */ 2262 with .desktop file name */
2232 if (ec->icccm.class) 2263 else if (ec->icccm.class)
2233 { 2264 {
2234 char buf[4096] = {0}; 2265 char buf[4096] = {0};
2235 snprintf(buf, sizeof(buf), "%s.desktop", ec->icccm.class); 2266 snprintf(buf, sizeof(buf), "%s.desktop", ec->icccm.class);
@@ -2840,8 +2871,11 @@ e_client_desk_set(E_Client *ec, E_Desk *desk)
2840 } 2871 }
2841 old_desk = ec->desk; 2872 old_desk = ec->desk;
2842 ec->desk = desk; 2873 ec->desk = desk;
2843 e_comp_object_effect_unclip(ec->frame); 2874 if (ec->frame)
2844 e_comp_object_effect_set(ec->frame, NULL); 2875 {
2876 e_comp_object_effect_unclip(ec->frame);
2877 e_comp_object_effect_set(ec->frame, NULL);
2878 }
2845 if (desk->visible || ec->sticky) 2879 if (desk->visible || ec->sticky)
2846 { 2880 {
2847 // force visibility if its a stack window going onto this desktop 2881 // force visibility if its a stack window going onto this desktop
@@ -5715,11 +5749,10 @@ e_client_transients_restack(E_Client *ec)
5715 if (!ec->transients) return; 5749 if (!ec->transients) return;
5716 5750
5717 list = eina_list_clone(ec->transients); 5751 list = eina_list_clone(ec->transients);
5718 E_LIST_REVERSE_FREE(list, child) 5752 EINA_LIST_FREE(list, child)
5719 { 5753 {
5720 /* Don't stack iconic transients. If the user wants these shown, 5754 // Don't stack iconic transients. If the user wants these shown,
5721 * that's another option. 5755 // that's another option.
5722 */
5723 if (child->iconic) continue; 5756 if (child->iconic) continue;
5724 if (below) 5757 if (below)
5725 { 5758 {
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index ceae239..adb98fc 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -568,6 +568,10 @@ struct E_Client
568 unsigned char have_property E_BITFIELD; 568 unsigned char have_property E_BITFIELD;
569 unsigned char vkbd E_BITFIELD; 569 unsigned char vkbd E_BITFIELD;
570 } vkbd; 570 } vkbd;
571
572 struct {
573 unsigned int steam_game_id;
574 } steam;
571 575
572 struct 576 struct
573 { 577 {
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 6727d40..316c189 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -713,6 +713,7 @@ _e_comp_shapes_update_job(void *d EINA_UNUSED)
713 Eina_Rectangle *r; 713 Eina_Rectangle *r;
714 Eina_List *rl = NULL; 714 Eina_List *rl = NULL;
715 E_Color color = {0}; 715 E_Color color = {0};
716 const char *type;
716 717
717 SHAPE_INF("---------------------"); 718 SHAPE_INF("---------------------");
718 719
@@ -738,11 +739,14 @@ _e_comp_shapes_update_job(void *d EINA_UNUSED)
738 _e_comp_shapes_update_object_shape_comp_helper(o, tb); 739 _e_comp_shapes_update_object_shape_comp_helper(o, tb);
739 continue; 740 continue;
740 } 741 }
741 ec = e_comp_object_client_get(o); 742 ec = NULL;
743 type = evas_object_type_get(o);
744 if ((type) && (!strcmp(type, "e_comp_object")))
745 ec = e_comp_object_client_get(o);
742 if (ec && (!ec->no_shape_cut)) 746 if (ec && (!ec->no_shape_cut))
743 _e_comp_shapes_update_comp_client_shape_comp_helper(ec, tb 747 _e_comp_shapes_update_comp_client_shape_comp_helper(ec, tb
744 ,&rl 748 ,&rl
745 ); 749 );
746 750
747 else 751 else
748 _e_comp_shapes_update_object_shape_comp_helper(o, tb); 752 _e_comp_shapes_update_object_shape_comp_helper(o, tb);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index d52ea2b..14d3a64 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -663,7 +663,7 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
663 { 663 {
664 if (cw->zoomap_disabled) 664 if (cw->zoomap_disabled)
665 { 665 {
666 if (cw->frame_object && (e_zoomap_child_get(cw->zoomobj) == cw->frame_object)) return EINA_FALSE; 666 if (cw->frame_object && (cw->zoomobj && e_zoomap_child_get(cw->zoomobj) == cw->frame_object)) return EINA_FALSE;
667 } 667 }
668 else 668 else
669 { 669 {
@@ -2989,7 +2989,6 @@ e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del)
2989{ 2989{
2990 Eina_List *l; 2990 Eina_List *l;
2991 2991
2992 SOFT_ENTRY();
2993 EINA_SAFETY_ON_NULL_RETURN(to_del); 2992 EINA_SAFETY_ON_NULL_RETURN(to_del);
2994 l = evas_object_data_get(obj, "comp_object-to_del"); 2993 l = evas_object_data_get(obj, "comp_object-to_del");
2995 evas_object_data_set(obj, "comp_object-to_del", eina_list_append(l, to_del)); 2994 evas_object_data_set(obj, "comp_object-to_del", eina_list_append(l, to_del));
@@ -3178,12 +3177,15 @@ E_API void
3178e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on) 3177e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on)
3179{ 3178{
3180 int x, y, w, h, ow, oh; 3179 int x, y, w, h, ow, oh;
3181 E_Comp_Object *cw2; 3180 E_Comp_Object *cw2 = NULL;
3181 const char *type;
3182 3182
3183 SOFT_ENTRY(); 3183 SOFT_ENTRY();
3184 EINA_SAFETY_ON_NULL_RETURN(on); 3184 EINA_SAFETY_ON_NULL_RETURN(on);
3185 3185
3186 cw2 = evas_object_smart_data_get(on); 3186 type = evas_object_type_get(on);
3187 if ((type) && (!strcmp(type, "e_comp_object")))
3188 cw2 = evas_object_smart_data_get(on);
3187 if (cw2 && eina_streq(evas_object_type_get(on), SMART_NAME)) 3189 if (cw2 && eina_streq(evas_object_type_get(on), SMART_NAME))
3188 x = cw2->ec->x, y = cw2->ec->y, w = cw2->ec->w, h = cw2->ec->h; 3190 x = cw2->ec->x, y = cw2->ec->y, w = cw2->ec->w, h = cw2->ec->h;
3189 else 3191 else
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 0835ee9..21d139a 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -560,6 +560,8 @@ _e_comp_x_client_new_helper(E_Client *ec)
560 ec->e.fetch.stack = 1; 560 ec->e.fetch.stack = 1;
561 else if (atoms[i] == ATM_GTK_FRAME_EXTENTS) 561 else if (atoms[i] == ATM_GTK_FRAME_EXTENTS)
562 ec->comp_data->fetch_gtk_frame_extents = 1; 562 ec->comp_data->fetch_gtk_frame_extents = 1;
563 else if (atoms[i] == ATM_STEAM_GAME)
564 e_hints_window_steam_game_get(ec);
563 else if (ec->re_manage) 565 else if (ec->re_manage)
564 { 566 {
565 if (atoms[i] == E_ATOM_DESKTOP_FILE) 567 if (atoms[i] == E_ATOM_DESKTOP_FILE)
@@ -2200,6 +2202,12 @@ _e_comp_x_property(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_W
2200 _e_comp_x_client_data_get(ec)->fetch_gtk_frame_extents = 1; 2202 _e_comp_x_client_data_get(ec)->fetch_gtk_frame_extents = 1;
2201 EC_CHANGED(ec); 2203 EC_CHANGED(ec);
2202 } 2204 }
2205 else if (ev->atom == ATM_STEAM_GAME)
2206 {
2207 e_hints_window_steam_game_get(ec);
2208 ec->changes.icon = 1;
2209 EC_CHANGED(ec);
2210 }
2203 2211
2204 return ECORE_CALLBACK_RENEW; 2212 return ECORE_CALLBACK_RENEW;
2205} 2213}
diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c
index f1b8f61..eabf467 100644
--- a/src/bin/e_hints.c
+++ b/src/bin/e_hints.c
@@ -15,6 +15,8 @@ E_API Ecore_X_Atom ATM_ENLIGHTENMENT_SCALE = 0;
15E_API Ecore_X_Atom ATM_NETWM_SHOW_WINDOW_MENU = 0; 15E_API Ecore_X_Atom ATM_NETWM_SHOW_WINDOW_MENU = 0;
16E_API Ecore_X_Atom ATM_NETWM_PERFORM_BUTTON_ACTION = 0; 16E_API Ecore_X_Atom ATM_NETWM_PERFORM_BUTTON_ACTION = 0;
17E_API Ecore_X_Atom ATM_GTK_FRAME_EXTENTS = 0; 17E_API Ecore_X_Atom ATM_GTK_FRAME_EXTENTS = 0;
18
19E_API Ecore_X_Atom ATM_STEAM_GAME = 0;
18#endif 20#endif
19 21
20EINTERN void 22EINTERN void
@@ -34,6 +36,7 @@ e_hints_init(Ecore_Window root, Ecore_Window propwin)
34 "_NET_WM_SHOW_WINDOW_MENU", 36 "_NET_WM_SHOW_WINDOW_MENU",
35 "_NET_WM_PERFORM_BUTTON_ACTION", 37 "_NET_WM_PERFORM_BUTTON_ACTION",
36 "_GTK_FRAME_EXTENTS", 38 "_GTK_FRAME_EXTENTS",
39 "STEAM_GAME",
37 }; 40 };
38 Ecore_X_Atom atoms[EINA_C_ARRAY_LENGTH(atom_names)]; 41 Ecore_X_Atom atoms[EINA_C_ARRAY_LENGTH(atom_names)];
39 Ecore_X_Atom supported[46]; 42 Ecore_X_Atom supported[46];
@@ -53,6 +56,7 @@ e_hints_init(Ecore_Window root, Ecore_Window propwin)
53 ATM_NETWM_SHOW_WINDOW_MENU = atoms[6]; 56 ATM_NETWM_SHOW_WINDOW_MENU = atoms[6];
54 ATM_NETWM_PERFORM_BUTTON_ACTION = atoms[7]; 57 ATM_NETWM_PERFORM_BUTTON_ACTION = atoms[7];
55 ATM_GTK_FRAME_EXTENTS = atoms[8]; 58 ATM_GTK_FRAME_EXTENTS = atoms[8];
59 ATM_STEAM_GAME = atoms[9];
56 60
57 supported_num = 0; 61 supported_num = 0;
58 /* Set what hints we support */ 62 /* Set what hints we support */
@@ -1606,6 +1610,22 @@ e_hints_window_qtopia_soft_menus_get(E_Client *ec)
1606} 1610}
1607 1611
1608E_API void 1612E_API void
1613e_hints_window_steam_game_get(E_Client *ec)
1614{
1615#ifdef HAVE_WAYLAND_ONLY
1616 (void)ec;
1617#else
1618 unsigned int val;
1619
1620 if (!e_client_has_xwindow(ec)) return;
1621 if (ecore_x_window_prop_card32_get(e_client_util_win_get(ec), ATM_STEAM_GAME, &val, 1))
1622 ec->steam.steam_game_id = val;
1623 else
1624 ec->steam.steam_game_id = 0;
1625#endif
1626}
1627
1628E_API void
1609e_hints_window_virtual_keyboard_state_get(E_Client *ec) 1629e_hints_window_virtual_keyboard_state_get(E_Client *ec)
1610{ 1630{
1611#ifdef HAVE_WAYLAND_ONLY 1631#ifdef HAVE_WAYLAND_ONLY
diff --git a/src/bin/e_hints.h b/src/bin/e_hints.h
index 5fa1f3f..38854ae 100644
--- a/src/bin/e_hints.h
+++ b/src/bin/e_hints.h
@@ -40,6 +40,8 @@ E_API void e_hints_window_e_state_get(E_Client *ec);
40E_API void e_hints_window_qtopia_soft_menu_get(E_Client *ec); 40E_API void e_hints_window_qtopia_soft_menu_get(E_Client *ec);
41E_API void e_hints_window_qtopia_soft_menus_get(E_Client *ec); 41E_API void e_hints_window_qtopia_soft_menus_get(E_Client *ec);
42 42
43E_API void e_hints_window_steam_game_get(E_Client *ec);
44
43E_API void e_hints_window_virtual_keyboard_state_get(E_Client *ec); 45E_API void e_hints_window_virtual_keyboard_state_get(E_Client *ec);
44E_API void e_hints_window_virtual_keyboard_get(E_Client *ec); 46E_API void e_hints_window_virtual_keyboard_get(E_Client *ec);
45 47
@@ -58,6 +60,7 @@ extern E_API Ecore_X_Atom ATM_ENLIGHTENMENT_SCALE;
58extern E_API Ecore_X_Atom ATM_NETWM_SHOW_WINDOW_MENU; 60extern E_API Ecore_X_Atom ATM_NETWM_SHOW_WINDOW_MENU;
59extern E_API Ecore_X_Atom ATM_NETWM_PERFORM_BUTTON_ACTION; 61extern E_API Ecore_X_Atom ATM_NETWM_PERFORM_BUTTON_ACTION;
60extern E_API Ecore_X_Atom ATM_GTK_FRAME_EXTENTS; 62extern E_API Ecore_X_Atom ATM_GTK_FRAME_EXTENTS;
63extern E_API Ecore_X_Atom ATM_STEAM_GAME;
61#endif 64#endif
62 65
63#ifdef HAVE_WAYLAND 66#ifdef HAVE_WAYLAND
diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c
index 3b5a218..c27a44d 100644
--- a/src/bin/e_pointer.c
+++ b/src/bin/e_pointer.c
@@ -217,7 +217,7 @@ _e_pointer_cb_mouse_wheel(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev
217 return ECORE_CALLBACK_PASS_ON; 217 return ECORE_CALLBACK_PASS_ON;
218} 218}
219 219
220static void 220static void
221_e_pointer_cb_hot_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) 221_e_pointer_cb_hot_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
222{ 222{
223 E_Pointer *ptr = data; 223 E_Pointer *ptr = data;
@@ -225,20 +225,20 @@ _e_pointer_cb_hot_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA
225 225
226 if (!ptr->e_cursor) return; 226 if (!ptr->e_cursor) return;
227 if (!evas_object_visible_get(ptr->o_ptr)) return; 227 if (!evas_object_visible_get(ptr->o_ptr)) return;
228 edje_object_part_geometry_get(ptr->o_ptr, "e.swallow.hotspot", 228 evas_object_geometry_get(ptr->buffer_o_hot,
229 &x, &y, NULL, NULL); 229 &x, &y, NULL, NULL);
230 _e_pointer_hot_update(ptr, x, y); 230 _e_pointer_hot_update(ptr, x, y);
231} 231}
232 232
233static void 233static void
234_e_pointer_cb_hot_show(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) 234_e_pointer_cb_hot_show(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
235{ 235{
236 E_Pointer *ptr = data; 236 E_Pointer *ptr = data;
237 int x = 0, y = 0; 237 int x = 0, y = 0;
238 238
239 if (!ptr->e_cursor) return; 239 if (!ptr->e_cursor) return;
240 edje_object_part_geometry_get(ptr->o_ptr, "e.swallow.hotspot", 240 evas_object_geometry_get(ptr->buffer_o_hot,
241 &x, &y, NULL, NULL); 241 &x, &y, NULL, NULL);
242 _e_pointer_hot_update(ptr, x, y); 242 _e_pointer_hot_update(ptr, x, y);
243} 243}
244 244
@@ -465,6 +465,7 @@ _e_pointer_type_set(E_Pointer *ptr, const char *type)
465 /* try to set the edje object theme */ 465 /* try to set the edje object theme */
466 if (!e_theme_edje_object_set(ptr->o_ptr, "base/theme/pointer", cursor)) 466 if (!e_theme_edje_object_set(ptr->o_ptr, "base/theme/pointer", cursor))
467 cursor[0] = 0; 467 cursor[0] = 0;
468 edje_object_part_swallow(ptr->o_ptr, "e.swallow.hotspot", ptr->o_hot);
468 if (!init) 469 if (!init)
469 { 470 {
470 edje_object_signal_emit(ptr->o_ptr, "e,state,init", "e"); 471 edje_object_signal_emit(ptr->o_ptr, "e,state,init", "e");
@@ -474,8 +475,8 @@ _e_pointer_type_set(E_Pointer *ptr, const char *type)
474 _e_pointer_x11_setup(ptr, cursor); 475 _e_pointer_x11_setup(ptr, cursor);
475 if (!cursor[0]) return; 476 if (!cursor[0]) return;
476 477
477 edje_object_part_geometry_get(ptr->o_ptr, "e.swallow.hotspot", 478 evas_object_geometry_get(ptr->buffer_o_hot,
478 &x, &y, NULL, NULL); 479 &x, &y, NULL, NULL);
479 _e_pointer_hot_update(ptr, x, y); 480 _e_pointer_hot_update(ptr, x, y);
480 481
481 if (ptr->canvas) 482 if (ptr->canvas)
diff --git a/src/bin/e_startup.c b/src/bin/e_startup.c
index ccb37ee..2fd88ed 100644
--- a/src/bin/e_startup.c
+++ b/src/bin/e_startup.c
@@ -44,7 +44,7 @@ e_startup_mode_set(E_Startup_Mode mode)
44 _e_startup_event_cb, 44 _e_startup_event_cb,
45 strdup(buf)); 45 strdup(buf));
46 if (timer) ecore_timer_del(timer); 46 if (timer) ecore_timer_del(timer);
47 timer = ecore_timer_add(5.0, _e_startup_time_exceeded, NULL); 47 timer = ecore_timer_add(10.0, _e_startup_time_exceeded, NULL);
48 e_init_undone(); 48 e_init_undone();
49} 49}
50 50