e_mod_input_panel: use transform move position of the input panel to set position 06/317606/8
authorJunseok Kim <juns.kim@samsung.com>
Thu, 12 Sep 2024 06:34:01 +0000 (15:34 +0900)
committerJunSeok Kim <juns.kim@samsung.com>
Mon, 23 Sep 2024 05:30:54 +0000 (05:30 +0000)
There was a bug where the input panel didn't place the bottom of the screen but instead remains separated from it.
This issue occurs on "Portrait" screens with resolutions that do not have a ratio of 16:9.

When the screen is portrait and resolution of the screen is not that ratio,
there may be transform move when the input panel using base output resolution.
But the transform move consider only the base output resolution position at the center of the screen.
It makes position of the input panel being hover from the bottom of the screen
even if the input panel should be stick at the bottom of the screen.

To fix this issue, we modified the input panel's position takes consider
the transform move value while being set the position to be stick at the bottom of the screen.

Change-Id: If76df20785de91879e48f9dfb68a7582fc8b354d

src/e_mod_input_panel.c

index 386a1faa74124094b9b3938071a8b6d6f9f7bfbf..489850da0829c1977d61712d0bbfc1f1a5b76586 100644 (file)
@@ -625,6 +625,8 @@ _e_input_panel_position_set(E_Client *ec, int w, int h)
    switch (ec->e.state.rot.ang.curr)
      {
       case 90:
+         if (e_client_transform_core_enable_get(ec))
+           e_client_transform_core_input_inv_transform(ec, 0, 0, &zx, &zy);
          nx = zx + zw - w;
          ny = zy + (zh - h) / 2;
          is_portrait = EINA_FALSE;
@@ -635,6 +637,8 @@ _e_input_panel_position_set(E_Client *ec, int w, int h)
          is_portrait = EINA_TRUE;
          break;
       case 270:
+         if (e_client_transform_core_enable_get(ec))
+           e_client_transform_core_input_inv_transform(ec, 0, 0, &zx, &zy);
          nx = zx;
          ny = zy + (zh - h) / 2;
          is_portrait = EINA_FALSE;