Modified to prevent setting invalid geometry of the floating IME 75/320375/1
authorInhong Han <inhong1.han@samsung.com>
Thu, 14 Nov 2024 07:04:46 +0000 (16:04 +0900)
committerInhong Han <inhong1.han@samsung.com>
Thu, 14 Nov 2024 07:04:46 +0000 (16:04 +0900)
Change-Id: I9069e5b52124f6be9898486b869168973d2774ea

src/e_mod_input_panel.c

index 93e6d11bd634570939432a2115a150490d088f5e..28ea88adc1677f1b96dc26ac2b8ca185c226973b 100644 (file)
@@ -1881,6 +1881,9 @@ void e_input_panel_floating_position_align_set(int x, int y, int align)
 
 void e_input_panel_floating_panel_move_resize(int x, int y, int w, int h)
 {
+   E_Input_Panel_Surface *floating_ips = NULL;
+   int angle = 0;
+
    LOGI("x : %d, y : %d, w : %d, h : %d", x, y, w, h);
 
    if (g_floating_info->align_position.x >= 0 || g_floating_info->align_position.y >= 0)
@@ -1889,8 +1892,20 @@ void e_input_panel_floating_panel_move_resize(int x, int y, int w, int h)
         g_floating_info->align_position.y = -1;
      }
 
-   g_floating_info->new_width = w;
-   g_floating_info->new_height = h;
+   floating_ips = _e_input_floating_panel_surface_get();
+   if (floating_ips && floating_ips->ec)
+     angle = floating_ips->ec->e.state.rot.ang.curr;
+
+   if (angle == 90 || angle == 270)
+     {
+        g_floating_info->new_width = h;
+        g_floating_info->new_height = w;
+     }
+   else
+     {
+        g_floating_info->new_width = w;
+        g_floating_info->new_height = h;
+     }
 
    e_input_panel_floating_position_set(x, y);
 }