improve compatibility with non-X11 backends
This commit is contained in:
		
							parent
							
								
									2b5af377aa
								
							
						
					
					
						commit
						0652af0220
					
				
							
								
								
									
										27
									
								
								termite.cc
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								termite.cc
									
									
									
									
									
								
							@ -28,10 +28,13 @@
 | 
				
			|||||||
#include <set>
 | 
					#include <set>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <gdk/gdkx.h>
 | 
					 | 
				
			||||||
#include <gtk/gtk.h>
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
#include <vte/vte.h>
 | 
					#include <vte/vte.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef GDK_WINDOWING_X11
 | 
				
			||||||
 | 
					#include <gdk/gdkx.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "url_regex.hh"
 | 
					#include "url_regex.hh"
 | 
				
			||||||
#include "util/clamp.hh"
 | 
					#include "util/clamp.hh"
 | 
				
			||||||
#include "util/maybe.hh"
 | 
					#include "util/maybe.hh"
 | 
				
			||||||
@ -1582,15 +1585,21 @@ int main(int argc, char **argv) {
 | 
				
			|||||||
    gtk_widget_hide(info.panel.panel);
 | 
					    gtk_widget_hide(info.panel.panel);
 | 
				
			||||||
    gtk_widget_hide(info.panel.da);
 | 
					    gtk_widget_hide(info.panel.da);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GdkWindow *gdk_window = gtk_widget_get_window(window);
 | 
					 | 
				
			||||||
    if (!gdk_window) {
 | 
					 | 
				
			||||||
        g_printerr("no window\n");
 | 
					 | 
				
			||||||
        return EXIT_FAILURE;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    char xid_s[std::numeric_limits<long unsigned>::digits10 + 1];
 | 
					 | 
				
			||||||
    snprintf(xid_s, sizeof(xid_s), "%lu", GDK_WINDOW_XID(gdk_window));
 | 
					 | 
				
			||||||
    char **env = g_get_environ();
 | 
					    char **env = g_get_environ();
 | 
				
			||||||
    env = g_environ_setenv(env, "WINDOWID", xid_s, TRUE);
 | 
					
 | 
				
			||||||
 | 
					#ifdef GDK_WINDOWING_X11
 | 
				
			||||||
 | 
					    if (GDK_IS_X11_SCREEN(gtk_widget_get_screen(window))) {
 | 
				
			||||||
 | 
					        GdkWindow *gdk_window = gtk_widget_get_window(window);
 | 
				
			||||||
 | 
					        if (!gdk_window) {
 | 
				
			||||||
 | 
					            g_printerr("no window\n");
 | 
				
			||||||
 | 
					            return EXIT_FAILURE;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        char xid_s[std::numeric_limits<long unsigned>::digits10 + 1];
 | 
				
			||||||
 | 
					        snprintf(xid_s, sizeof(xid_s), "%lu", GDK_WINDOW_XID(gdk_window));
 | 
				
			||||||
 | 
					        env = g_environ_setenv(env, "WINDOWID", xid_s, TRUE);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    env = g_environ_setenv(env, "TERM", term, TRUE);
 | 
					    env = g_environ_setenv(env, "TERM", term, TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GPid child_pid;
 | 
					    GPid child_pid;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user