[gtk+] [broadway] Track window type in browser
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] [broadway] Track window type in browser
- Date: Thu, 7 Apr 2011 19:20:00 +0000 (UTC)
commit 199cd1548fb385b592e8ff750918a3624e54e74d
Author: Alexander Larsson <alexl redhat com>
Date: Tue Apr 5 12:27:43 2011 +0200
[broadway] Track window type in browser
gdk/broadway/broadway-demo.c | 2 +-
gdk/broadway/broadway.c | 9 +++++----
gdk/broadway/broadway.h | 3 ++-
gdk/broadway/broadway.js | 7 +++++--
gdk/broadway/gdkwindow-broadway.c | 6 ++++--
5 files changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/gdk/broadway/broadway-demo.c b/gdk/broadway/broadway-demo.c
index d46b336..70c5ff9 100644
--- a/gdk/broadway/broadway-demo.c
+++ b/gdk/broadway/broadway-demo.c
@@ -146,7 +146,7 @@ demo2 (BroadwayOutput *output)
double da = 0;
int i;
- broadway_output_new_surface(output, 0, 100, 100, 800, 600);
+ broadway_output_new_surface(output, 0, 100, 100, 800, 600, 0);
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
800, 600);
diff --git a/gdk/broadway/broadway.c b/gdk/broadway/broadway.c
index bada96e..478a451 100644
--- a/gdk/broadway/broadway.c
+++ b/gdk/broadway/broadway.c
@@ -18,14 +18,12 @@
static const char base64_alphabet[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-#if 0
static void
base64_uint8 (guint8 v, char *c)
{
c[0] = base64_alphabet[(v >> 0) & 0x3f];
c[1] = base64_alphabet[(v >> 6) & 0x3];
}
-#endif
static void
base64_uint16 (guint32 v, char *c)
@@ -685,9 +683,11 @@ broadway_output_ungrab_pointer (BroadwayOutput *output)
}
void
-broadway_output_new_surface(BroadwayOutput *output, int id, int x, int y, int w, int h)
+broadway_output_new_surface(BroadwayOutput *output,
+ int id, int x, int y, int w, int h,
+ gboolean is_temp)
{
- char buf[HEADER_LEN + 15];
+ char buf[HEADER_LEN + 16];
int p;
p = write_header (output, buf, 's');
@@ -696,6 +696,7 @@ broadway_output_new_surface(BroadwayOutput *output, int id, int x, int y, int w
append_uint16 (y, buf, &p);
append_uint16 (w, buf, &p);
append_uint16 (h, buf, &p);
+ buf[p++] = is_temp ? '1' : '0';
assert (p == sizeof (buf));
diff --git a/gdk/broadway/broadway.h b/gdk/broadway/broadway.h
index 2f93d27..86df4df 100644
--- a/gdk/broadway/broadway.h
+++ b/gdk/broadway/broadway.h
@@ -18,7 +18,8 @@ void broadway_output_new_surface (BroadwayOutput *output,
int x,
int y,
int w,
- int h);
+ int h,
+ gboolean is_temp);
void broadway_output_show_surface (BroadwayOutput *output,
int id);
void broadway_output_hide_surface (BroadwayOutput *output,
diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js
index 3f34a2a..bcac301 100644
--- a/gdk/broadway/broadway.js
+++ b/gdk/broadway/broadway.js
@@ -92,7 +92,7 @@ var surfaces = {};
var outstandingCommands = new Array();
var inputSocket = null;
-function initContext(canvas, x, y, id)
+function initContext(canvas, x, y, id, isTemp)
{
canvas.surfaceId = id;
canvas.style["position"] = "absolute";
@@ -103,6 +103,7 @@ function initContext(canvas, x, y, id)
context.globalCompositeOperation = "source-over";
document.body.appendChild(canvas);
context.drawQueue = [];
+ context.isTemp = isTemp;
context.transientParent = 0;
return context;
@@ -223,10 +224,12 @@ function handleCommands(cmdObj)
i = i + 3;
var h = base64_16(cmd, i);
i = i + 3;
+ var isTemp = cmd[i] == '1';
+ i = i + 1;
var surface = document.createElement("canvas");
surface.width = w;
surface.height = h;
- surfaces[id] = initContext(surface, x, y, id);
+ surfaces[id] = initContext(surface, x, y, id, isTemp);
break;
case 'S': // Show a surface
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index 24c4bb2..4fd138f 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -225,7 +225,8 @@ _gdk_broadway_resync_windows (void)
window->x,
window->y,
window->width,
- window->height);
+ window->height,
+ window->window_type == GDK_WINDOW_TEMP);
if (GDK_WINDOW_IS_MAPPED (window))
{
broadway_output_show_surface (display->output, impl->id);
@@ -363,7 +364,8 @@ _gdk_broadway_display_create_window_impl (GdkDisplay *display,
window->x,
window->y,
window->width,
- window->height);
+ window->height,
+ window->window_type == GDK_WINDOW_TEMP);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]