suggestion picker: a persistent layer to complement virtual keyboards like wvkbd
Use output dimensions to detect landscape mode
Based off of a commit in wvkbd
Most displays are in landscape mode by default, so checking to see if
it's rotated will produce the exact opposite of the expected results.
| -rw-r--r-- | main.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -238,14 +238,19 @@ static void display_handle_geometry(void *data, struct wl_output *wl_output, int x, int y, int physical_width, int physical_height, int subpixel, const char *make, const char *model, int transform) { - if (transform % 2 == 0 && keyboard.landscape) { - keyboard.landscape = false; - height = normal_height; - } else if (transform % 2 != 0 && !keyboard.landscape) { - keyboard.landscape = true; + // Swap width and height on rotated displays + if (transform % 2 != 0) { + int tmp = physical_width; + physical_width = physical_height; + physical_height = tmp; + } + bool landscape = physical_width > physical_height; + if (landscape == keyboard.landscape) return; + keyboard.landscape = landscape; + if (keyboard.landscape) { height = landscape_height; } else { - return; // no changes + height = normal_height; } zwlr_layer_surface_v1_set_size(layer_surface, 0, height); |