Set the right window position
This commit is contained in:
		
							parent
							
								
									72ceedd4db
								
							
						
					
					
						commit
						c1caf4bbc7
					
				| @ -752,6 +752,8 @@ static void calc_window_pos(int width, int height, int *ret_x, int *ret_y) | |||||||
|                         *ret_y = scr->y + settings.geometry.y; |                         *ret_y = scr->y + settings.geometry.y; | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|  |         LOG_I("Screen size: %ix%i", scr->w, scr->h); | ||||||
|  |         LOG_I("Return value: %ix%i", *ret_x, *ret_y); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void draw(void) | void draw(void) | ||||||
|  | |||||||
| @ -52,6 +52,12 @@ const struct output output_wl = { | |||||||
| 
 | 
 | ||||||
| const struct output* output_create(void) | const struct output* output_create(void) | ||||||
| { | { | ||||||
|  |         if (is_running_wayland()){ | ||||||
|  |                 LOG_I("System is running wayland"); | ||||||
|  |         } | ||||||
|  |         else{ | ||||||
|  |                 LOG_I("System is running X11"); | ||||||
|  |         } | ||||||
|         return &output_wl; |         return &output_wl; | ||||||
| } | } | ||||||
| /* vim: set ft=c tabstop=8 shiftwidth=8 expandtab textwidth=0: */ | /* vim: set ft=c tabstop=8 shiftwidth=8 expandtab textwidth=0: */ | ||||||
|  | |||||||
| @ -22,6 +22,7 @@ | |||||||
| #include "pool-buffer.h" | #include "pool-buffer.h" | ||||||
| 
 | 
 | ||||||
| #include "../log.h" | #include "../log.h" | ||||||
|  | #include "../settings.h" | ||||||
| 
 | 
 | ||||||
| struct window_wl { | struct window_wl { | ||||||
|         struct wl_surface *surface; |         struct wl_surface *surface; | ||||||
| @ -426,10 +427,35 @@ static void send_frame() { | |||||||
|         // exists, we might need to resize if the list of notifications has changed
 |         // exists, we might need to resize if the list of notifications has changed
 | ||||||
|         // since the last time we drew.
 |         // since the last time we drew.
 | ||||||
|         if (ctx.height != height) { |         if (ctx.height != height) { | ||||||
|  |                 struct dimensions dim = ctx.cur_dim; | ||||||
|  |                 // Set window size
 | ||||||
|                 zwlr_layer_surface_v1_set_size(ctx.layer_surface, |                 zwlr_layer_surface_v1_set_size(ctx.layer_surface, | ||||||
|                                 ctx.cur_dim.w, ctx.cur_dim.h); |                                 dim.w, dim.h); | ||||||
|  | 
 | ||||||
|  |                 uint32_t anchor = 0; | ||||||
|  |                 if (settings.geometry.negative_x){ | ||||||
|  |                         anchor |= ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT; | ||||||
|  |                 } | ||||||
|  |                 else{ | ||||||
|  |                         anchor |= ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (settings.geometry.negative_y){ | ||||||
|  |                         anchor |= ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM; | ||||||
|  |                 } | ||||||
|  |                 else{ | ||||||
|  |                         anchor |= ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP; | ||||||
|  |                 } | ||||||
|  |                  | ||||||
|  |                 // Put the window at the right position
 | ||||||
|                 zwlr_layer_surface_v1_set_anchor(ctx.layer_surface, |                 zwlr_layer_surface_v1_set_anchor(ctx.layer_surface, | ||||||
|                         ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP | ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT); |                         anchor); | ||||||
|  |                 zwlr_layer_surface_v1_set_margin(ctx.layer_surface, | ||||||
|  |                                 abs(settings.geometry.y), // top
 | ||||||
|  |                                 abs(settings.geometry.x), // right
 | ||||||
|  |                                 abs(settings.geometry.y), // bottom
 | ||||||
|  |                                 abs(settings.geometry.x));// left
 | ||||||
|  | 
 | ||||||
|                 wl_surface_commit(ctx.surface); |                 wl_surface_commit(ctx.surface); | ||||||
| 
 | 
 | ||||||
|                 // Now we're going to bail without drawing anything. This gives the
 |                 // Now we're going to bail without drawing anything. This gives the
 | ||||||
| @ -562,9 +588,10 @@ cairo_t* wl_win_get_context(window winptr) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const struct screen_info* wl_get_active_screen(void) { | const struct screen_info* wl_get_active_screen(void) { | ||||||
|  |         // TODO Screen size detection
 | ||||||
|         static struct screen_info scr = { |         static struct screen_info scr = { | ||||||
|                 .w = 1080, |                 .w = 1920, | ||||||
|                 .h = 1920, |                 .h = 1080, | ||||||
|                 .x = 0, |                 .x = 0, | ||||||
|                 .y = 0, |                 .y = 0, | ||||||
|                 .id = 0, |                 .id = 0, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 fwsmit
						fwsmit