Esempio n. 1
0
void set_no_focus(GtkWidget *win)
{
  gdk_window_set_override_redirect(gtk_widget_get_window(win), TRUE);
  gtk_window_set_accept_focus(GTK_WINDOW(win), FALSE);
  gtk_window_set_focus_on_map (GTK_WINDOW(win), FALSE);
  gtk_window_set_resizable (GTK_WINDOW (win), FALSE);
}
Esempio n. 2
0
static VALUE
gdkwin_set_override_redirect(VALUE self, VALUE override_redirect)
{
    gdk_window_set_override_redirect(_SELF(self), 
                                     RVAL2CBOOL(override_redirect));
    return self;
}
Esempio n. 3
0
JNIEXPORT void JNICALL
Java_org_gnome_gdk_GdkWindow_gdk_1window_1set_1override_1redirect
(
	JNIEnv* env,
	jclass cls,
	jlong _self,
	jboolean _overrideRedirect
)
{
	GdkWindow* self;
	gboolean overrideRedirect;

	// convert parameter self
	self = (GdkWindow*) _self;

	// convert parameter overrideRedirect
	overrideRedirect = (gboolean) _overrideRedirect;

	// call function
	gdk_window_set_override_redirect(self, overrideRedirect);

	// cleanup parameter self

	// cleanup parameter overrideRedirect
}
Esempio n. 4
0
void xmms_fullscreen_leave(GtkWidget * win)
{
	fullscreen_window_t *fwin;

	FULL_LOCK();
	fwin = getwindow(win);

	if (fwin->is_full && fwin->display->is_full)
	{
		/* Release our grabs */
		gdk_pointer_ungrab(GDK_CURRENT_TIME);
		gdk_keyboard_ungrab(GDK_CURRENT_TIME);

		/* Let the WM manage this window again */
		gdk_window_hide(fwin->window->window);
		gdk_window_set_override_redirect(fwin->window->window, FALSE);
		gdk_window_show(fwin->window->window);

		/* Restore size/position */
		gdk_window_move_resize(fwin->window->window, fwin->ox, fwin->oy,
				       fwin->owidth, fwin->oheight);

		XF86VidModeSwitchToMode(fwin->display->display,
					DefaultScreen(fwin->display->display),
					fwin->display->origmode);
		fwin->display->is_full = FALSE;
	}
	fwin->is_full = FALSE;
	FULL_UNLOCK();
}
Esempio n. 5
0
JS_EXPORT_API
void guide_set_focus(gboolean focus)
{
    GdkWindow* gdkwindow = gtk_widget_get_window (get_container());
    gdk_window_set_focus_on_map (gdkwindow, focus);
    gdk_window_set_accept_focus (gdkwindow, focus);
    gdk_window_set_override_redirect(gdkwindow, !focus);
 }
Esempio n. 6
0
JS_EXPORT_API
void osd_set_focus(gboolean focus)
{
    gtk_window_set_focus_on_map (GTK_WINDOW (container), focus);
    gtk_window_set_accept_focus (GTK_WINDOW (container), focus);
    gtk_window_set_focus_visible (GTK_WINDOW (container), focus);
    
    GdkWindow* gdkwindow = gtk_widget_get_window (container);
    gdk_window_set_focus_on_map (gdkwindow, focus);
    gdk_window_set_accept_focus (gdkwindow, focus);
    
    gdk_window_set_override_redirect(gdkwindow, !focus);
 }
Esempio n. 7
0
void set_no_focus(GtkWidget *win)
{
#if UNIX
  gdk_window_set_override_redirect(gtk_widget_get_window(win), TRUE);
#else
  gtk_window_set_decorated(GTK_WINDOW(win), FALSE);
  gtk_window_set_keep_above(GTK_WINDOW(win), TRUE);
  gtk_window_set_accept_focus(GTK_WINDOW(win), FALSE);
  gtk_window_set_type_hint(GTK_WINDOW(win), GDK_WINDOW_TYPE_HINT_TOOLTIP);
  gtk_window_set_skip_taskbar_hint(GTK_WINDOW(win), TRUE);
#endif

  gtk_window_set_accept_focus(GTK_WINDOW(win), FALSE);
  gtk_window_set_focus_on_map (GTK_WINDOW(win), FALSE);
}
Esempio n. 8
0
void draw_background_by_rect(GtkWidget* widget, struct DisplayInfo info,
                             const gchar* xatom_name)
{
    g_message("[%s], %dx%d(%d,%d)\n", __func__, info.width, info.height,
              info.x, info.y);

    gtk_widget_set_size_request(widget, info.width, info.height);
    gtk_window_move(GTK_WINDOW(widget), info.x, info.y);

    setup_background(widget,NULL,xatom_name);
    gtk_widget_realize (widget);
    GdkWindow* gdkwindow = gtk_widget_get_window (widget);
    gdk_window_set_accept_focus(gdkwindow,FALSE);
    gdk_window_set_override_redirect (gdkwindow, TRUE);
    gtk_widget_show (widget);
}
Esempio n. 9
0
int main (int argc, char **argv)
{
    if (argc == 2 && 0 == g_strcmp0(argv[1], "-d"))
        g_setenv("G_MESSAGES_DEBUG", "all", FALSE);

    if (is_livecd()){
        dde_session_register();
        return 0;
    }

    if (is_application_running("com.deepin.dde.guide")) {
        g_warning("another instance of application dde-guide is running...\n");
        return 0;
    } else {
        singleton("com.deepin.dde.guide");
    }

    init_i18n ();

    gtk_init (&argc, &argv);
    g_log_set_default_handler((GLogFunc)log_to_file, "dde-guide");

    if (!guide_is_debug()){
        struct DisplayInfo rect_screen;
        update_screen_info(&rect_screen);
        widget_move_by_rect(get_container(),rect_screen);
        listen_monitors_changed_signal(G_CALLBACK(monitors_changed_cb),NULL);
    }

    GtkWidget *webview = d_webview_new_with_uri (GET_HTML_PATH("guide"));
    gtk_container_add (GTK_CONTAINER(get_container()), GTK_WIDGET (webview));
    g_signal_connect(webview, "draw", G_CALLBACK(erase_background), NULL);

    gtk_widget_realize (get_container());
    gtk_widget_realize (webview);

    GdkWindow* gdkwindow = gtk_widget_get_window (get_container());
    if (!guide_is_debug())
        gdk_window_set_override_redirect (gdkwindow, TRUE);

    gtk_widget_show_all (get_container());

    gtk_main ();

    return 0;
}
Esempio n. 10
0
gboolean xmms_fullscreen_enter(GtkWidget * win, gint * w, gint * h)
{
	gint i, close, how_close = -1, t, dummy;
	gboolean retval = FALSE;
	fullscreen_window_t *fwin;

	FULL_LOCK();
	fwin = getwindow(win);

	if (!fwin->display->is_full && !fwin->is_full
	    && fwin->display->can_full)
	{
		for (close = 0; close < fwin->display->num_modes; close++)
		{
			if ((fwin->display->modes[close]->hdisplay >= *w) &&
			    (fwin->display->modes[close]->vdisplay >= *h))
			{
				how_close = fwin->display->modes[close]->hdisplay - *w;
				break;
			}
		}

		for (i = close + 1; i < fwin->display->num_modes; i++)
		{
			if (fwin->display->modes[i]->vdisplay < *h)
				continue;
			t = fwin->display->modes[i]->hdisplay - *w;
			if (t >= 0 && t < how_close)
			{
				close = i;
				how_close = t;
			}
		}

		if (close < fwin->display->num_modes)
		{
			*w = fwin->display->modes[close]->hdisplay;
			*h = fwin->display->modes[close]->vdisplay;

			/* Save the old position/size */
			gdk_window_get_root_origin(fwin->window->window, &fwin->ox, &fwin->oy);
			gdk_window_get_size(fwin->window->window, &fwin->owidth, &fwin->oheight);

			/* Move it. */
			gdk_window_move_resize(fwin->window->window, 0, 0,
					       fwin->display->modes[close]->hdisplay,
					       fwin->display->modes[close]->vdisplay);

			/* Tell the WM not to mess with this window (no more decor) */
			gdk_window_hide(fwin->window->window);
			gdk_window_set_override_redirect(fwin->window->window, TRUE);
			gdk_window_show(fwin->window->window);

			/*
			 * XXX: HACK
			 * Something is ungrabbing the pointer shortly
			 * after the above unmap/override_redirect=TRUE/map
			 * is done.  I don't know what at this time, only
			 * that it's not XMMS, and that it's very very evil.
			 */
			gdk_flush();
			xmms_usleep(50000);

			/* Steal the keyboard/mouse */
			/* XXX: FIXME, use timeouts.. */
			for (t = 0; t < 10; t++)
			{
				dummy = gdk_pointer_grab(fwin->window->window,
							 TRUE, 0,
							 fwin->window->window,
							 NULL,
							 GDK_CURRENT_TIME);

				if (dummy == GrabSuccess)
					break;

				gtk_main_iteration_do(FALSE);
				xmms_usleep(10000);
			}
			gdk_keyboard_grab(fwin->window->window, TRUE,
					  GDK_CURRENT_TIME);

			/* Do the video mode switch.. */
			XF86VidModeSwitchToMode(fwin->display->display,
						DefaultScreen(fwin->display->display),
						fwin->display->modes[close]);

			XF86VidModeSetViewPort(fwin->display->display,
					       DefaultScreen(fwin->display->display),
					       0, 0);

			retval = TRUE;

			fwin->is_full = TRUE;
			fwin->display->is_full = TRUE;
		}
	}

	FULL_UNLOCK();

	return retval;
}