Change maximize type for service windows 07/292207/2
authorDoyoun Kang <doyoun.kang@samsung.com>
Fri, 28 Apr 2023 07:59:26 +0000 (16:59 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 2 May 2023 02:57:08 +0000 (02:57 +0000)
We changed a maximize type of special windows (such as service windows)
to MAXIMIZE_FULLSCREEN.
For this patch, if the obsctacle windows (ex, taskbar) are exist, the special
windows are maximized regardless of obstacles area.

FYI, normal window's default maximize type is E_MAXIMIZE_EXPAND and it's
maximize geometry is affected by obstacle area.

Change-Id: Ia17189a68d5a9ab068ed49c2c94ff98fa5f8a621

src/bin/e_client.c
src/bin/e_policy.c
src/bin/e_policy_wl.c

index 37b5db9..417f71c 100644 (file)
@@ -6249,7 +6249,10 @@ e_client_maximize(E_Client *ec, E_Maximize max)
    if ((ec->shaded) || (ec->shading)) return;
 
    if ((ec->maximized & E_MAXIMIZE_DIRECTION) == (max & E_MAXIMIZE_DIRECTION))
-     return;
+     {
+        if ((ec->maximized & E_MAXIMIZE_TYPE) == (max & E_MAXIMIZE_TYPE))
+          return;
+     }
 
    if (ec->new_client)
      {
index 031feab..e2a3d30 100644 (file)
@@ -295,8 +295,20 @@ _e_policy_client_maximize_policy_apply(E_Policy_Client *pc)
          * E_Desk.
          */
         ec->placed = 1;
+        E_Maximize max;
+        if ((e_policy_client_is_home_screen(ec)) ||
+            (e_policy_client_is_lockscreen(ec)) ||
+            (e_policy_client_is_quickpanel(ec)) ||
+            (e_policy_client_is_taskbar(ec)))
+          {
+             max = E_MAXIMIZE_FULLSCREEN | E_MAXIMIZE_BOTH;
+          }
+        else
+          {
+             max = E_MAXIMIZE_EXPAND | E_MAXIMIZE_BOTH;
+          }
 
-        e_client_maximize(ec, E_MAXIMIZE_EXPAND | E_MAXIMIZE_BOTH);
+        e_client_maximize(ec, max);
 
         if (ec->changes.need_maximize)
           _e_policy_client_maximize_pre(pc);
@@ -1412,6 +1424,8 @@ _e_policy_cb_client_property(void *data EINA_UNUSED, int type EINA_UNUSED, void
           {
              ev->ec->lock_client_stacking = 0;
              e_client_desk_iconify_skip_set(ev->ec, EINA_TRUE);
+             if (ev->ec->maximized)
+               e_client_maximize(ev->ec, E_MAXIMIZE_FULLSCREEN | E_MAXIMIZE_BOTH);
           }
      }
 
index b847a0f..33a760f 100644 (file)
@@ -4685,6 +4685,9 @@ _tzsh_iface_cb_srv_create(struct wl_client *client, struct wl_resource *res_tzsh
                                   tzsh_srv,
                                   _tzsh_cb_srv_destroy);
 
+   if (tzsh_srv->ec->maximized)
+     e_client_maximize(ec, E_MAXIMIZE_FULLSCREEN | E_MAXIMIZE_BOTH);
+
    if (role == TZSH_SRV_ROLE_QUICKPANEL_SYSTEM_DEFAULT)
      e_service_quickpanel_client_add(tzsh_srv->ec, E_SERVICE_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
    else if (role == TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU)