screen_info struct
put all variables that contain information about the current screen in one struct to keep things clean.
This commit is contained in:
		
							parent
							
								
									939d1f980b
								
							
						
					
					
						commit
						fcdbf8ec0d
					
				
							
								
								
									
										54
									
								
								dunst.c
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								dunst.c
									
									
									
									
									
								
							| @ -25,6 +25,13 @@ typedef struct _msg_queue_t { | |||||||
|     time_t start; |     time_t start; | ||||||
| } msg_queue_t; | } msg_queue_t; | ||||||
| 
 | 
 | ||||||
|  | typedef struct _screen_info { | ||||||
|  |     int scr; | ||||||
|  |     int x; | ||||||
|  |     int y; | ||||||
|  |     int h; | ||||||
|  |     int w; | ||||||
|  | } screen_info; | ||||||
| 
 | 
 | ||||||
| /* global variables */ | /* global variables */ | ||||||
| static int expand = True; | static int expand = True; | ||||||
| @ -44,13 +51,8 @@ static int listen_to_dbus = True; | |||||||
| static int visible = False; | static int visible = False; | ||||||
| static KeySym key = NoSymbol; | static KeySym key = NoSymbol; | ||||||
| static KeySym mask = 0; | static KeySym mask = 0; | ||||||
| static int screen = -1; | static screen_info scr; | ||||||
| static int screen_x = 0; | static int message_h; | ||||||
| static int screen_y = 0; |  | ||||||
| static int screen_h = 0; |  | ||||||
| static int screen_w = 0; |  | ||||||
| static int message_h = 0; |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| /* list functions */ | /* list functions */ | ||||||
| msg_queue_t *append(msg_queue_t *queue, char *msg); | msg_queue_t *append(msg_queue_t *queue, char *msg); | ||||||
| @ -107,16 +109,16 @@ drawmsg(const char *msg) { | |||||||
|     dc->x = 0; |     dc->x = 0; | ||||||
|     dc->y = 0; |     dc->y = 0; | ||||||
|     dc->h = 0; |     dc->h = 0; | ||||||
|     y = topbar ? 0 : screen_h - message_h; |     y = topbar ? 0 : scr.h - message_h; | ||||||
|     if(expand) { |     if(expand) { | ||||||
|         width = screen_w; |         width = scr.w; | ||||||
|     } else { |     } else { | ||||||
|         width = textw(dc, msg); |         width = textw(dc, msg); | ||||||
|     } |     } | ||||||
|     if(right) { |     if(right) { | ||||||
|         x = screen_x + (screen_w - width); |         x = scr.x + (scr.w - width); | ||||||
|     } else { |     } else { | ||||||
|         x = screen_x; |         x = scr.x; | ||||||
|     } |     } | ||||||
|     resizedc(dc, width, message_h); |     resizedc(dc, width, message_h); | ||||||
|     XResizeWindow(dc->dpy, win, width, message_h); |     XResizeWindow(dc->dpy, win, width, message_h); | ||||||
| @ -135,7 +137,7 @@ handleXEvents(void) { | |||||||
|         switch(ev.type) { |         switch(ev.type) { | ||||||
|         case Expose: |         case Expose: | ||||||
|             if(ev.xexpose.count == 0) |             if(ev.xexpose.count == 0) | ||||||
|                 mapdc(dc, win, screen_w, message_h); |                 mapdc(dc, win, scr.w, message_h); | ||||||
|             break; |             break; | ||||||
|         case SelectionNotify: |         case SelectionNotify: | ||||||
|             if(ev.xselection.property == utf8) |             if(ev.xselection.property == utf8) | ||||||
| @ -206,8 +208,8 @@ setup(void) { | |||||||
| 	int n; | 	int n; | ||||||
| 	XineramaScreenInfo *info; | 	XineramaScreenInfo *info; | ||||||
| #endif | #endif | ||||||
|     if(screen < 0) { |     if(scr.scr < 0) { | ||||||
|         screen = DefaultScreen(dc->dpy); |         scr.scr = DefaultScreen(dc->dpy); | ||||||
|     } |     } | ||||||
|     root = RootWindow(dc->dpy, DefaultScreen(dc->dpy)); |     root = RootWindow(dc->dpy, DefaultScreen(dc->dpy)); | ||||||
| 
 | 
 | ||||||
| @ -220,29 +222,29 @@ setup(void) { | |||||||
| 	message_h = dc->font.height + 2; | 	message_h = dc->font.height + 2; | ||||||
| #ifdef XINERAMA | #ifdef XINERAMA | ||||||
| 	if((info = XineramaQueryScreens(dc->dpy, &n))) { | 	if((info = XineramaQueryScreens(dc->dpy, &n))) { | ||||||
|         if(screen >= n) { |         if(scr.scr >= n) { | ||||||
|             fprintf(stderr, "Monitor %d not found\n", screen); |             fprintf(stderr, "Monitor %d not found\n", scr.scr); | ||||||
|             exit(EXIT_FAILURE); |             exit(EXIT_FAILURE); | ||||||
|         } |         } | ||||||
| 		screen_x = info[screen].x_org; | 		scr.x = info[scr.scr].x_org; | ||||||
| 		screen_y = info[screen].y_org; | 		scr.y = info[scr.scr].y_org; | ||||||
|         screen_h = info[screen].height; |         scr.h = info[scr.scr].height; | ||||||
|         screen_w = info[screen].width; |         scr.w = info[scr.scr].width; | ||||||
| 		XFree(info); | 		XFree(info); | ||||||
| 	} | 	} | ||||||
| 	else | 	else | ||||||
| #endif | #endif | ||||||
| 	{ | 	{ | ||||||
| 		screen_x = 0; | 		scr.x = 0; | ||||||
| 		screen_y = 0; | 		scr.y = 0; | ||||||
| 		screen_w = DisplayWidth(dc->dpy, screen); | 		scr.w = DisplayWidth(dc->dpy, scr.scr); | ||||||
|         screen_h = DisplayHeight(dc->dpy, screen); |         scr.h = DisplayHeight(dc->dpy, scr.scr); | ||||||
| 	} | 	} | ||||||
| 	/* menu window */ | 	/* menu window */ | ||||||
| 	wa.override_redirect = True; | 	wa.override_redirect = True; | ||||||
| 	wa.background_pixmap = ParentRelative; | 	wa.background_pixmap = ParentRelative; | ||||||
| 	wa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | ButtonPressMask; | 	wa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | ButtonPressMask; | ||||||
| 	win = XCreateWindow(dc->dpy, root, screen_x, screen_y, screen_w, message_h, 0, | 	win = XCreateWindow(dc->dpy, root, scr.x, scr.y, scr.w, message_h, 0, | ||||||
| 	                    DefaultDepth(dc->dpy, DefaultScreen(dc->dpy)), CopyFromParent, | 	                    DefaultDepth(dc->dpy, DefaultScreen(dc->dpy)), CopyFromParent, | ||||||
| 	                    DefaultVisual(dc->dpy, DefaultScreen(dc->dpy)), | 	                    DefaultVisual(dc->dpy, DefaultScreen(dc->dpy)), | ||||||
| 	                    CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); | 	                    CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); | ||||||
| @ -316,7 +318,7 @@ main(int argc, char *argv[]) { | |||||||
|              listen_to_dbus = False; |              listen_to_dbus = False; | ||||||
|         } |         } | ||||||
|         else if(!strcmp(argv[i], "-mon")) { |         else if(!strcmp(argv[i], "-mon")) { | ||||||
|             screen = atoi(argv[++i]); |             scr.scr = atoi(argv[++i]); | ||||||
|         } |         } | ||||||
|         else if(!strcmp(argv[i], "-key")) { |         else if(!strcmp(argv[i], "-key")) { | ||||||
|             key = XStringToKeysym(argv[i+1]); |             key = XStringToKeysym(argv[i+1]); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sascha Kruse
						Sascha Kruse