[PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Jon A. Cruz
---
 ubuntu12.04.html | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/ubuntu12.04.html b/ubuntu12.04.html
index 804433e..7576fd4 100644
--- a/ubuntu12.04.html
+++ b/ubuntu12.04.html
@@ -15,7 +15,8 @@ Building Weston on Ubuntu 12.04/h1
 XWayland on an Ubuntu 12.04 LTS system, on May 23rd, 2014. This system had
 previously been used to compile Xlib programs, and thus already had
 some dependencies (such as git, the compiler, and X11 header files)
-installed./p
+installed. Dependencies were last updated from a successful build
+on October 20th, 2014./p
 
 pParallel make (codemake -j 9/code) will probably work on all
 packages but only the ones shown were compiled this way./p
@@ -39,6 +40,7 @@ mkdir -p $ACLOCAL_PATH
 
 span class=comment# dependencies for libwayland:/span
 sudo apt-get install doxygen span class=comment# or use 
--disable-documentation/span
+sudo apt-get install xmlto span class=comment# or use 
--disable-documentation/span
 
 span class=comment# libwayland-*:/span
 git clone git://anongit.freedesktop.org/wayland/wayland
@@ -253,6 +255,12 @@ cd libxkbfile
 make amp;amp; make install
 cd ..
 
+git clone git://anongit.freedesktop.org/xorg/proto/scrnsaverproto
+cd scrnsaverproto
+./autogen.sh --prefix=$WLD
+make amp;amp; make install
+cd ..
+
 span class=comment# XWayland:/span
 git clone git://anongit.freedesktop.org/xorg/xserver
 cd xserver
-- 
1.7.12

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Reusing wl_egl_window for multiple EGL surfaces

2014-10-27 Thread Pekka Paalanen
On Sat, 25 Oct 2014 17:14:32 -0700
Virtual Presence virtualpresence.u...@gmail.com wrote:

 Hi,
 
 I am writing a simple multi-threaded multi-context GLES2 Wayland client. As
 required by Wayland and MESA EGL bindings i do create a wl_egl_window to
 pass on to EGL window surface creation. I was wondering if there is any
 spec or rule that disallows reuse of the same wl_egl_window for multiple
 EGLWindowSurface. I was wondering if i could use the same underlying
 wl_egl_window resize bindings to cause multiple resizes. If i cannot do the
 same i would like to know of a spec/rule/guide (say like an EGL spec) that
 lists all the creation, management, deletion and usage of this object.

Hi,

I cannot understand what you could possibly achieve by creating several
EGLSurfaces for the same window. What do you want to do?

Are you perhaps attempting to render different parts of a single window
in different GL contexts and so using different EGLSurfaces with some
clipping magic? Maybe relying that GLX (not EGL IIRC!) required the
color buffers to be shared between clients/contexts?

Or do you simply want a dummy EGLSurface for each context, and then use
FBOs to do the work, without ever calling eglSwapBuffers except for the
one context that actually draws in the window? Because there are no
Pixmaps in EGL Wayland?

I can't quote a spec off-hand, but I know the EGL Wayland platform does
not support partial rendering. Every time you call eglSwapBuffers,
the whole buffer content must be valid, as the display server is free
to take the whole buffer as the new window contents. That's actually a
Wayland specification: every buffer must be completely drawn, as the
display server is allowed to use all of it, even if the associated
damage is only a part of it.

So, I don't think it is explicitly forbidden anywhere to create several
EGLSurfaces for the same wl_egl_window, but it just doesn't make sense.
The different (E)GL contexts using the different EGLSurfaces would be
fighting over whose buffer ends up on screen. As such, I expect that
case to be untested, and so likely hit bugs.

FWIW, you'd be looking for an EGL Wayland platform specification, and
one has not been written AFAIK, as has not been written for many of the
other platforms either.


Thanks,
pq
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH Weston 1/1] desktop-shell: implement autolaunch

2014-10-27 Thread Pekka Paalanen
On Fri, 24 Oct 2014 14:47:00 -0700
Bryce Harrington br...@osg.samsung.com wrote:

 On Fri, Oct 24, 2014 at 01:18:51PM +0300, Pekka Paalanen wrote:
   And, while you're at it - as this was written for kiosk mode, it spawns a
   shell script which just restarts the video player in a loop. Can we please
   add an autostart param to weston_client_run/start (as a new enum with
   WESTON_CLIENT_RESTART, not bool) and to the config (as a bool) which lifts
   most of
   desktop_shell_client_destroy/check_desktop_shell_crash_too_early/respawn_desktop_shell_process?
  
  I'm not sure that's feasible. Watching the process exit is not used to
  trigger respawn for weston-desktop-shell, but losing the wl_client is.
  These two events happen in arbitrary order, and we recently fixed a
  related bug by exactly not respawning based on process exit. We want
  weston-desktop-shell to respawn if the compositor disconnects it, even
  if the actual process gets left behind due to malfunction.
  
  Restart for autolaunch OTOH would be based on process exit rather than
  losing the connection.
  
  IOW, weston_client_start() and the existing respawn mechanism are
  intended for special purpose known clients, while the panel
  launchers and the autolaunch feature are meant for running arbitrary
  programs (that might not even be clients themselves/directly or at all).
  
  I'm not sure if adding restart to autolaunch is in scope... there are
  many aspects to configure for restart (delays, when to give up)
  so I'd rather maybe keep with the script. Or systemd user session.
  After all, the autolaunch is just a quick'n'useful hack when no session
  manager (systemd or other) is available.
 
 Hmm, the several special cases / hacks here maybe suggests some
 generalization is needed?

The two cases I described are very different. weston_client_start() is
usually used to launch DE helper applications that need special
privileges, and therefore the Wayland connection is created
before-hand. It is part of our security mechanisms.

What would you refactor here?

 Also, for X, there is typically a .xinitrc, .gnomerc, or similar that's
 executed as a shell script during system launch.  Do we have plans for
 adding something similar for weston?  Like a .westonrc?

This patch adds exactly that. Well, a place to tell what to execute
automatically when the compositor becomes ready, anyway.

Btw. there is already also the primary client feature in Weston. An
application may launch Weston and be the only normal client to Weston
then. Weston will quit when this client disconnects. It is controlled
by WESTON_SERVER_SOCKET environment variable, which is set to an open
file descriptor number. Weston does not create a listening socket in
this case. Obviously that is a very different case than start-up
scripts.

 If not, perhaps this feature gives us a place for hanging startup
 scripts?

Yes. We already have lots of logic to find a weston.ini file, why would
we add more logic to similarly find a .westonrc? We can just say in
weston.ini what to execute.

I think that is also more clear, because the only file that Weston
needs to find on its own is weston.ini, and so it's a single point of
failure rather than finding two, if something goes wrong.

Note, that you can have any number of autolaunch entries. You don't
need a separate script if you just start a bunch of one-off apps.

 (Not saying that shell scripts are the best way to do autostart of
 applications, but it has been a tradition...)

Well, if you are building a DE, you write a plugin for it in any case,
and that plugin can then spawn and manage the helper apps if it needs
to.

This autolaunch on the other hand is very much a hack, which is useful
in the odd cases where writing a plugin is not appropriate. A demo setup
that automatically starts a video player at boot, for instance, which is
the very case behind this patch.

One might see this similar to script based init vs. systemd. I do
like systemd, but I don't think we should make Weston a generic process
manager. For the odd hacks, being able to run scripts and other random
stuff just via weston.ini is useful.


Thanks,
pq
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH wayland 1/2] tests: add test for callback serials

2014-10-27 Thread Marek Chalupa
The callback returns always with the same serial,
which is not right (it's serial, not constant...).
This test highlights the bug.

Signed-off-by: Marek Chalupa mchqwe...@gmail.com
---
 tests/display-test.c | 55 
 1 file changed, 55 insertions(+)

diff --git a/tests/display-test.c b/tests/display-test.c
index a1e45b1..eb4ba1c 100644
--- a/tests/display-test.c
+++ b/tests/display-test.c
@@ -593,3 +593,58 @@ TEST(threading_read_after_error_tst)
 
display_destroy(d);
 }
+
+static void
+sync_callback(void *data, struct wl_callback *wl_callback, uint32_t serial)
+{
+   int *got = data;
+   static uint32_t last_serial = 0;
+
+   /* if this is the first callback, just copy the value of serial */
+   if (*got == 0)
+   last_serial = serial;
+   else
+   ++last_serial;
+
+   /* since we only call display_sync, nothing else can increase the
+* serial, so the serails must be sequential */
+   assert(serial == last_serial
+   Serial is not sequential);
+
+   ++(*got);
+}
+
+static const struct wl_callback_listener sync_listener = {
+   sync_callback
+};
+
+#define CB_NUM 1000
+static void
+callback_serial_tst_main(void)
+{
+   int i, got = 0;
+   struct wl_callback *cb;
+   struct client *client = client_connect();
+
+   for (i = 0; i  CB_NUM; ++i) {
+   cb = wl_display_sync(client-wl_display);
+   wl_callback_add_listener(cb, sync_listener, got);
+   }
+
+   wl_display_flush(client-wl_display);
+   wl_display_roundtrip(client-wl_display);
+
+   assert(got == CB_NUM  Lost some callback);
+
+   client_disconnect(client);
+}
+
+TEST(callback_serial_tst)
+{
+   struct display *d = display_create();
+
+   client_create(d, callback_serial_tst_main);
+   display_run(d);
+
+   display_destroy(d);
+}
-- 
1.9.3

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH wayland 2/2] server: use next serial in display_sync

2014-10-27 Thread Marek Chalupa
Display sync sends always the same serial (if nothing intervenes
and increases the serial for the sync).

Signed-off-by: Marek Chalupa mchqwe...@gmail.com
---
 src/wayland-server.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/wayland-server.c b/src/wayland-server.c
index 674aeca..54284fa 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -717,7 +717,7 @@ display_sync(struct wl_client *client,
return;
}
 
-   serial = wl_display_get_serial(client-display);
+   serial = wl_display_next_serial(client-display);
wl_callback_send_done(callback, serial);
wl_resource_destroy(callback);
 }
-- 
1.9.3

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH wayland] client: read_events should return -1 after an error

2014-10-27 Thread Marek Chalupa
When a thread is sleeping, waiting until another thread read
from the display, it always returns 0. Even when an error
occured. In documentation stands:

  return 0 on success or -1 on error.  In case of error errno will
   be set accordingly

So this is a fix for this.

Along with the read_events, fix a test so that it now complies
with this behaviour (and we have this tested)

Signed-off-by: Marek Chalupa mchqwe...@gmail.com
---
 src/wayland-client.c | 5 +
 tests/display-test.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/wayland-client.c b/src/wayland-client.c
index b0f77b9..1a70dc7 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -1187,6 +1187,11 @@ read_events(struct wl_display *display)
while (display-read_serial == serial)
pthread_cond_wait(display-reader_cond,
  display-mutex);
+
+   if (display-last_error) {
+   errno = display-last_error;
+   return -1;
+   }
}
 
return 0;
diff --git a/tests/display-test.c b/tests/display-test.c
index eb4ba1c..6ce9fe5 100644
--- a/tests/display-test.c
+++ b/tests/display-test.c
@@ -384,9 +384,9 @@ thread_read_error(void *data)
 * thread should be woken up or it will block indefinitely.
 */
c-display_stopped = 1;
-   assert(wl_display_read_events(c-wl_display) == 0);
+   assert(wl_display_read_events(c-wl_display) == -1);
 
-   wl_display_dispatch_pending(c-wl_display);
+   assert(wl_display_dispatch_pending(c-wl_display) == -1);
assert(wl_display_get_error(c-wl_display));
 
pthread_exit(NULL);
-- 
1.9.3

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH] connection: Leave fd open in wl_connection_destroy

2014-10-27 Thread Marek Chalupa
Hi,

at first glance I didn't like returning fd from wl_connection_destroy, but
at the other, I did!
If you think about the connection as a buffer for the fd (and that is
really the case),
then it make sense to do something like:

  create conn  -- destroy conn
fd -- | connection |  fd
 --

The race in threaded environment is real (one thread closes fd, say 6,
other thread opens new fd
- it will get the first free value which is 6 - and the first thread close
the 6 again and we're in trouble..)
So it's important to close every fd only once.

For me it's OK and:

Reviewed-by: Marek Chalupa mchqwe...@gmail.com

On 30 September 2014 14:43, Benjamin Herr b...@0x539.de wrote:

 Calling close() on the same file descriptor that a previous call to
 close() already closed is wrong, and racy if another thread received
 that same file descriptor as a eg. new socket or actual file.

 There are two situations where wl_connection_destroy() would close its
 file descriptor and then another function up in the call chain would
 close the same file descriptor:

   * When wl_client_create() fails after calling wl_connection_create(),
 it will call wl_connection_destroy() before returning. However, its
 caller will always close the file descriptor if wl_client_create()
 fails.

   * wl_display_disconnect() unconditionally closes the display file
 descriptor and also calls wl_connection_destroy().

 So these two seem to expect wl_connection_destroy() to leave the file
 descriptor open. The other caller of wl_connection_destroy(),
 wl_client_destroy(), does however expect wl_connection_destroy() to
 close its file descriptor, alas.

 This patch changes wl_connection_destroy() to indulge this majority of
 two callers by simply not closing the file descriptor. For the benefit
 of wl_client_destroy(), wl_connection_destroy() then returns the
 unclosed file descriptor so that wl_client_destroy() can close it
 itself.

 Since wl_connection_destroy() is a private function called from few
 places, changing its semantics seemed like the more expedient way to
 address the double-close() problem than shuffling around the logic in
 wl_client_create() to somehow enable it to always avoid calling
 wl_connection_destroy().

 Signed-off-by: Benjamin Herr b...@0x539.de
 ---
  src/connection.c| 7 +--
  src/wayland-private.h   | 2 +-
  src/wayland-server.c| 2 +-
  tests/connection-test.c | 8 ++--
  4 files changed, 13 insertions(+), 6 deletions(-)

 diff --git a/src/connection.c b/src/connection.c
 index f292853..c5daca6 100644
 --- a/src/connection.c
 +++ b/src/connection.c
 @@ -189,13 +189,16 @@ close_fds(struct wl_buffer *buffer, int max)
 buffer-tail += size;
  }

 -void
 +int
  wl_connection_destroy(struct wl_connection *connection)
  {
 +   int fd = connection-fd;
 +
 close_fds(connection-fds_out, -1);
 close_fds(connection-fds_in, -1);
 -   close(connection-fd);
 free(connection);
 +
 +   return fd;
  }

  void
 diff --git a/src/wayland-private.h b/src/wayland-private.h
 index 67e8783..db76081 100644
 --- a/src/wayland-private.h
 +++ b/src/wayland-private.h
 @@ -86,7 +86,7 @@ int wl_interface_equal(const struct wl_interface *iface1,
const struct wl_interface *iface2);

  struct wl_connection *wl_connection_create(int fd);
 -void wl_connection_destroy(struct wl_connection *connection);
 +int wl_connection_destroy(struct wl_connection *connection);
  void wl_connection_copy(struct wl_connection *connection, void *data,
 size_t size);
  void wl_connection_consume(struct wl_connection *connection, size_t size);

 diff --git a/src/wayland-server.c b/src/wayland-server.c
 index 674aeca..7caeb30 100644
 --- a/src/wayland-server.c
 +++ b/src/wayland-server.c
 @@ -670,7 +670,7 @@ wl_client_destroy(struct wl_client *client)
 wl_map_for_each(client-objects, destroy_resource, serial);
 wl_map_release(client-objects);
 wl_event_source_remove(client-source);
 -   wl_connection_destroy(client-connection);
 +   close(wl_connection_destroy(client-connection));
 wl_list_remove(client-link);
 free(client);
  }
 diff --git a/tests/connection-test.c b/tests/connection-test.c
 index 659bf68..4497128 100644
 --- a/tests/connection-test.c
 +++ b/tests/connection-test.c
 @@ -57,6 +57,7 @@ TEST(connection_create)

 connection = setup(s);
 wl_connection_destroy(connection);
 +   close(s[0]);
 close(s[1]);
  }

 @@ -74,6 +75,7 @@ TEST(connection_write)
 assert(memcmp(message, buffer, sizeof message) == 0);

 wl_connection_destroy(connection);
 +   close(s[0]);
 close(s[1]);
  }

 @@ -92,6 +94,7 @@ TEST(connection_data)
 wl_connection_consume(connection, sizeof message);

 wl_connection_destroy(connection);
 +   close(s[0]);

Re: [PATCH libinput] evdev: Pass along device overflow information

2014-10-27 Thread Derek Foreman
On 26/10/14 11:11 PM, Peter Hutterer wrote:
 On Fri, Oct 24, 2014 at 01:18:06PM -0500, Derek Foreman wrote:
 Currently libinput users just see choppy input if the kernel event queue
 overflows.  This patch passes along an event so the caller can at least
 log it.
 
 any reason you didn't just log it through libinput if that's all you want to
 do?
 
 not a big fan of having an event for what is essentially an implementation
 detail in the public API.

That's fair - I guess there's nothing the caller can (or should) do in
response to this anyway.

New patch to follow.

 Cheers,
Peter
 
 ---
  src/evdev.c|  1 +
  src/libinput-private.h |  3 +++
  src/libinput.c | 18 ++
  src/libinput.h |  5 +
  4 files changed, 27 insertions(+)

 diff --git a/src/evdev.c b/src/evdev.c
 index d8e3e5a..157bed7 100644
 --- a/src/evdev.c
 +++ b/src/evdev.c
 @@ -929,6 +929,7 @@ evdev_device_dispatch(void *data)
 to the current state */
  ev.code = SYN_REPORT;
  evdev_device_dispatch_one(device, ev);
 +notify_overflowed_device(device-base);
  
  rc = evdev_sync_device(device);
  if (rc == 0)
 diff --git a/src/libinput-private.h b/src/libinput-private.h
 index 5a975d9..4606565 100644
 --- a/src/libinput-private.h
 +++ b/src/libinput-private.h
 @@ -212,6 +212,9 @@ void
  notify_removed_device(struct libinput_device *device);
  
  void
 +notify_overflowed_device(struct libinput_device *device);
 +
 +void
  keyboard_notify_key(struct libinput_device *device,
  uint32_t time,
  uint32_t key,
 diff --git a/src/libinput.c b/src/libinput.c
 index 5780a92..81528b7 100644
 --- a/src/libinput.c
 +++ b/src/libinput.c
 @@ -171,6 +171,7 @@ libinput_event_get_pointer_event(struct libinput_event 
 *event)
  abort(); /* not used as actual event type */
  case LIBINPUT_EVENT_DEVICE_ADDED:
  case LIBINPUT_EVENT_DEVICE_REMOVED:
 +case LIBINPUT_EVENT_DEVICE_OVERFLOW:
  case LIBINPUT_EVENT_KEYBOARD_KEY:
  break;
  case LIBINPUT_EVENT_POINTER_MOTION:
 @@ -197,6 +198,7 @@ libinput_event_get_keyboard_event(struct libinput_event 
 *event)
  abort(); /* not used as actual event type */
  case LIBINPUT_EVENT_DEVICE_ADDED:
  case LIBINPUT_EVENT_DEVICE_REMOVED:
 +case LIBINPUT_EVENT_DEVICE_OVERFLOW:
  break;
  case LIBINPUT_EVENT_KEYBOARD_KEY:
  return (struct libinput_event_keyboard *) event;
 @@ -223,6 +225,7 @@ libinput_event_get_touch_event(struct libinput_event 
 *event)
  abort(); /* not used as actual event type */
  case LIBINPUT_EVENT_DEVICE_ADDED:
  case LIBINPUT_EVENT_DEVICE_REMOVED:
 +case LIBINPUT_EVENT_DEVICE_OVERFLOW:
  case LIBINPUT_EVENT_KEYBOARD_KEY:
  case LIBINPUT_EVENT_POINTER_MOTION:
  case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE:
 @@ -248,6 +251,7 @@ libinput_event_get_device_notify_event(struct 
 libinput_event *event)
  abort(); /* not used as actual event type */
  case LIBINPUT_EVENT_DEVICE_ADDED:
  case LIBINPUT_EVENT_DEVICE_REMOVED:
 +case LIBINPUT_EVENT_DEVICE_OVERFLOW:
  return (struct libinput_event_device_notify *) event;
  case LIBINPUT_EVENT_KEYBOARD_KEY:
  case LIBINPUT_EVENT_POINTER_MOTION:
 @@ -831,6 +835,20 @@ notify_removed_device(struct libinput_device *device)
  }
  
  void
 +notify_overflowed_device(struct libinput_device *device)
 +{
 +struct libinput_event_device_notify *overflowed_device_event;
 +
 +overflowed_device_event = zalloc(sizeof *overflowed_device_event);
 +if (!overflowed_device_event)
 +return;
 +
 +post_base_event(device,
 +LIBINPUT_EVENT_DEVICE_OVERFLOW,
 +overflowed_device_event-base);
 +}
 +
 +void
  keyboard_notify_key(struct libinput_device *device,
  uint32_t time,
  uint32_t key,
 diff --git a/src/libinput.h b/src/libinput.h
 index 9cc6f52..39c9f92 100644
 --- a/src/libinput.h
 +++ b/src/libinput.h
 @@ -230,6 +230,11 @@ enum libinput_event_type {
   */
  LIBINPUT_EVENT_DEVICE_REMOVED,
  
 +/**
 + * Signals that the kernel event queue for the device has overflowed.
 + */
 +LIBINPUT_EVENT_DEVICE_OVERFLOW,
 +
  LIBINPUT_EVENT_KEYBOARD_KEY = 300,
  
  LIBINPUT_EVENT_POINTER_MOTION = 400,
 -- 
 2.1.1

 ___
 wayland-devel mailing list
 wayland-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/wayland-devel


___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH libinput] evdev: Log evdev event queue overflows

2014-10-27 Thread Derek Foreman
Log a message when the kernel event queue overflows and events are dropped.
After 10 messages logging stops to avoid flooding the logs if the condition
is persistent.
---
 src/evdev.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/evdev.c b/src/evdev.c
index 1b4ce10..c786537 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -912,6 +912,7 @@ evdev_sync_device(struct evdev_device *device)
 static void
 evdev_device_dispatch(void *data)
 {
+   static int overflows = 0;
struct evdev_device *device = data;
struct libinput *libinput = device-base.seat-libinput;
struct input_event ev;
@@ -924,6 +925,15 @@ evdev_device_dispatch(void *data)
rc = libevdev_next_event(device-evdev,
 LIBEVDEV_READ_FLAG_NORMAL, ev);
if (rc == LIBEVDEV_READ_STATUS_SYNC) {
+   if (overflows  10) {
+   overflows++;
+   log_info(libinput, Kernel evdev event queue 
+overflow for %s\n, device-devname);
+   if (overflows == 10)
+   log_info(libinput, No longer logging 
+evdev event queue 
overflows\n);
+   }
+
/* send one more sync event so we handle all
   currently pending events before we sync up
   to the current state */
-- 
2.1.1

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH libinput] evdev: Log evdev event queue overflows

2014-10-27 Thread Derek Foreman
A couple of questions on this one:
Is it ok to limit logging to 10 messages like this?
Should I be doing that on a per device basis instead of globally?

(I'm totally unattached to the specifics of the log text, I believe X
says something clever about how it's not the X server's fault to avoid
silly bug reports...)

Thanks

On 27/10/14 09:26 AM, Derek Foreman wrote:
 Log a message when the kernel event queue overflows and events are dropped.
 After 10 messages logging stops to avoid flooding the logs if the condition
 is persistent.
 ---
  src/evdev.c | 10 ++
  1 file changed, 10 insertions(+)
 
 diff --git a/src/evdev.c b/src/evdev.c
 index 1b4ce10..c786537 100644
 --- a/src/evdev.c
 +++ b/src/evdev.c
 @@ -912,6 +912,7 @@ evdev_sync_device(struct evdev_device *device)
  static void
  evdev_device_dispatch(void *data)
  {
 + static int overflows = 0;
   struct evdev_device *device = data;
   struct libinput *libinput = device-base.seat-libinput;
   struct input_event ev;
 @@ -924,6 +925,15 @@ evdev_device_dispatch(void *data)
   rc = libevdev_next_event(device-evdev,
LIBEVDEV_READ_FLAG_NORMAL, ev);
   if (rc == LIBEVDEV_READ_STATUS_SYNC) {
 + if (overflows  10) {
 + overflows++;
 + log_info(libinput, Kernel evdev event queue 
 +  overflow for %s\n, device-devname);
 + if (overflows == 10)
 + log_info(libinput, No longer logging 
 +  evdev event queue 
 overflows\n);
 + }
 +
   /* send one more sync event so we handle all
  currently pending events before we sync up
  to the current state */
 

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Bryce Harrington
Reviewed-by: Bryce Harrington b.harring...@samsung.com

On Mon, Oct 27, 2014 at 12:25:05AM -0700, Jon A. Cruz wrote:
 ---
  ubuntu12.04.html | 10 +-
  1 file changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/ubuntu12.04.html b/ubuntu12.04.html
 index 804433e..7576fd4 100644
 --- a/ubuntu12.04.html
 +++ b/ubuntu12.04.html
 @@ -15,7 +15,8 @@ Building Weston on Ubuntu 12.04/h1
  XWayland on an Ubuntu 12.04 LTS system, on May 23rd, 2014. This system had
  previously been used to compile Xlib programs, and thus already had
  some dependencies (such as git, the compiler, and X11 header files)
 -installed./p
 +installed. Dependencies were last updated from a successful build
 +on October 20th, 2014./p
  
  pParallel make (codemake -j 9/code) will probably work on all
  packages but only the ones shown were compiled this way./p
 @@ -39,6 +40,7 @@ mkdir -p $ACLOCAL_PATH
  
  span class=comment# dependencies for libwayland:/span
  sudo apt-get install doxygen span class=comment# or use 
 --disable-documentation/span
 +sudo apt-get install xmlto span class=comment# or use 
 --disable-documentation/span
  
  span class=comment# libwayland-*:/span
  git clone git://anongit.freedesktop.org/wayland/wayland
 @@ -253,6 +255,12 @@ cd libxkbfile
  make amp;amp; make install
  cd ..
  
 +git clone git://anongit.freedesktop.org/xorg/proto/scrnsaverproto
 +cd scrnsaverproto
 +./autogen.sh --prefix=$WLD
 +make amp;amp; make install
 +cd ..
 +
  span class=comment# XWayland:/span
  git clone git://anongit.freedesktop.org/xorg/xserver
  cd xserver
 -- 
 1.7.12
 
 ___
 wayland-devel mailing list
 wayland-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/wayland-devel
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[WESTON PATCH 1/1] compositor: Add idle timeout option to weston.ini

2014-10-27 Thread Frederic Plourde
Weston's idle timeout can already be set via the '-i' command-line
option, but this patch lets users specify it also via weston.ini.
Note that the command-line option takes precedence over the .ini,
should the option be set by both.

This patch also Updates weston.ini man page with idle-timeout bits

https://bugs.freedesktop.org/show_bug.cgi?id=83921
Signed-off-by: Frederic Plourde frederic.plou...@collabora.co.uk
---
 man/weston.ini.man | 19 +--
 src/compositor.c   |  6 +-
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/man/weston.ini.man b/man/weston.ini.man
index c05a221..a5566b0 100644
--- a/man/weston.ini.man
+++ b/man/weston.ini.man
@@ -62,21 +62,21 @@ Comment lines are ignored:
 .RS 4
 .nf
 .IR #comment
 .fi
 .RE
 .PP
 The section headers are:
 .PP
 .RS 4
 .nf
-.BR coreThe core modules
+.BR coreThe core modules and options
 .BR libinputInput device configuration
 .BR shell   Desktop customization
 .BR launcherAdd launcher to the panel
 .BR screensaver Screensaver selection
 .BR output  Output configuration
 .BR input-methodOnscreen keyboard input
 .BR keyboardKeyboard layouts
 .BR terminalTerminal application options
 .BR xwaylandXWayland options
 .BR screen-shareScreen sharing options
@@ -85,21 +85,21 @@ The section headers are:
 .PP
 Possible value types are string, signed and unsigned 32-bit
 integer, and boolean. Strings must not be quoted, do not support any
 escape sequences, and run till the end of the line. Integers can
 be given in decimal (e.g. 123), octal (e.g. 0173), and hexadecimal
 (e.g. 0x7b) form. Boolean values can be only 'true' or 'false'.
 .RE
 .SH CORE SECTION
 The
 .B core
-section is used to select the startup compositor modules.
+section is used to select the startup compositor modules and general options.
 .TP 7
 .BI shell= desktop-shell.so
 specifies a shell to load (string). This can be used to load your own
 implemented shell or one with Weston as default. Available shells
 in the
 .IR __weston_modules_dir__
 directory are:
 .PP
 .RS 10
 .nf
@@ -139,20 +139,35 @@ directory are:
 .fi
 .RE
 .BI gbm-format=format
 sets the GBM format used for the framebuffer for the GBM backend. Can be
 .B xrgb,
 .B xrgb2101010,
 .B rgb565.
 By default, xrgb is used.
 .RS
 .PP
+.RE
+.TP 7
+.BI idle-time=seconds
+sets Weston's idle timeout in seconds. This idle timeout is the time
+after which Weston will enter an inactive mode, fading the screen to
+black and possibly starting screensavers (if opt-in), etc.
+
+.IR Important
+: This option may also be set via Weston's '-i' command
+line option and will take precedence over the current .ini option. This
+means that if both weston.ini and command line define this idle-timeout
+time, the one specified in the command-line will be used. On the other
+hand, if none of these sets the value, default idle timeout will be
+set to 300 seconds.
+.RS
 
 .SH LIBINPUT SECTION
 The
 .B libinput
 section is used to configure input devices when using the libinput input device
 backend.
 .PP
 Available configuration are:
 .TP 7
 .BI enable_tap= true
diff --git a/src/compositor.c b/src/compositor.c
index 4540911..015037f 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4603,21 +4603,21 @@ int main(int argc, char *argv[])
*(*backend_init)(struct wl_display *display,
 int *argc, char *argv[],
 struct weston_config *config);
int i, fd;
char *backend = NULL;
char *shell = NULL;
char *modules = NULL;
char *option_modules = NULL;
char *log = NULL;
char *server_socket = NULL, *end;
-   int32_t idle_time = 300;
+   int32_t idle_time = -1;
int32_t help = 0;
char *socket_name = NULL;
int32_t version = 0;
int32_t noconfig = 0;
int32_t numlock_on;
struct weston_config *config = NULL;
struct weston_config_section *section;
struct wl_client *primary_client;
struct wl_listener primary_client_destroyed;
struct weston_seat *seat;
@@ -4701,20 +4701,24 @@ int main(int argc, char *argv[])
ec = backend_init(display, argc, argv, config);
if (ec == NULL) {
weston_log(fatal: failed to create compositor\n);
ret = EXIT_FAILURE;
goto out_signals;
}
 
catch_signals();
segv_compositor = ec;
 
+   if (idle_time  0)
+   weston_config_section_get_int(section, idle-time, idle_time, 
-1);
+   if (idle_time  0)
+   idle_time = 300; /* default idle timeout, in seconds */
ec-idle_time = idle_time;
ec-default_pointer_grab = NULL;
 
for (i = 1; i  argc; i++)
weston_log(fatal: unhandled option: %s\n, argv[i]);
if (argc  1) {
ret = EXIT_FAILURE;
  

[weston] Makefile.am: Link weston_multi_resource against rt library

2014-10-27 Thread Javier Jardón
This fixes this build failure:

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../x86_64-unknown-linux-gnu/bin/ld:
clients/weston_multi_resource-multi-resource.o: undefined reference to
symbol 'clock_gettime@@GLIBC_2.2.5'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../x86_64-unknown-linux-gnu/bin/ld:
note: 'clock_gettime@@GLIBC_2.2.5' is defined in DSO /lib64/librt.so.1
so try adding it to the linker command line
/lib64/librt.so.1: could not read symbols: Invalid operation
---
 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index b2d6893..0c08acb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -419,7 +419,7 @@ weston_simple_touch_LDADD = $(SIMPLE_CLIENT_LIBS) 
libshared.la
 
 weston_multi_resource_SOURCES = clients/multi-resource.c
 weston_multi_resource_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS)
-weston_multi_resource_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la -lm
+weston_multi_resource_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la -lrt -lm
 endif
 
 if BUILD_SIMPLE_EGL_CLIENTS
-- 
2.1.2

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH v3] wayland-util: added wl_strtol/wl_strtoul utility functions

2014-10-27 Thread Jasper St. Pierre
Can I also suggest that we don't make this public API? These are internal
helpers for libwayland, not designed for any consumers. We've been burned
by making too much internal helper API public before.

On Mon, Oct 27, 2014 at 2:42 AM, Marek Chalupa mchqwe...@gmail.com wrote:



 On 22 October 2014 13:32, Imran Zaman imran.za...@gmail.com wrote:

 strtol/strtoul utility functions are used extensively in
 weston/wayland, and are not bug-free in their current form.
 To avoid definition in weston and wayland, its wrapped
 in functions with appropriate input and output checks.
 Test cases are also updated.

 Signed-off-by: Imran Zaman imran.za...@gmail.com
 ---
  src/scanner.c|   5 +-
  src/wayland-client.c |   5 +-
  src/wayland-util.c   |  55 
  src/wayland-util.h   |   4 ++
  tests/fixed-test.c   | 142
 +++
  5 files changed, 204 insertions(+), 7 deletions(-)

 diff --git a/src/scanner.c b/src/scanner.c
 index 809130b..165b12b 100644
 --- a/src/scanner.c
 +++ b/src/scanner.c
 @@ -315,7 +315,6 @@ start_element(void *data, const char *element_name,
 const char **atts)
 struct description *description;
 const char *name, *type, *interface_name, *value, *summary,
 *since;
 const char *allow_null;
 -   char *end;
 int i, version;

 ctx-loc.line_number = XML_GetCurrentLineNumber(ctx-parser);
 @@ -404,9 +403,7 @@ start_element(void *data, const char *element_name,
 const char **atts)
 message-destructor = 0;

 if (since != NULL) {
 -   errno = 0;
 -   version = strtol(since, end, 0);
 -   if (errno == EINVAL || end == since || *end !=
 '\0')
 +   if (!wl_strtol(since, NULL, 0, (long *)version))


 This is baad. You cannot use the int version here, because in wl_strol you
 write sizeof(long) on the address
 of version and if sizeof(version) is smaller than sizeof(long) then you
 overwrite memory. I'm getting ugly SIGSEGV
 because of that.



 fail(ctx-loc,
  invalid integer (%s)\n, since);
 } else {
 diff --git a/src/wayland-client.c b/src/wayland-client.c
 index b0f77b9..fd98705 100644
 --- a/src/wayland-client.c
 +++ b/src/wayland-client.c
 @@ -824,13 +824,12 @@ wl_display_connect_to_fd(int fd)
  WL_EXPORT struct wl_display *
  wl_display_connect(const char *name)
  {
 -   char *connection, *end;
 +   char *connection;
 int flags, fd;

 connection = getenv(WAYLAND_SOCKET);
 if (connection) {
 -   fd = strtol(connection, end, 0);
 -   if (*end != '\0')
 +   if (!wl_strtol(connection, NULL, 0, (long *)fd))
 return NULL;

 flags = fcntl(fd, F_GETFD);
 diff --git a/src/wayland-util.c b/src/wayland-util.c
 index b099882..a930364 100644
 --- a/src/wayland-util.c
 +++ b/src/wayland-util.c
 @@ -26,6 +26,8 @@
  #include stdio.h
  #include string.h
  #include stdarg.h
 +#include errno.h
 +#include ctype.h

  #include wayland-util.h
  #include wayland-private.h
 @@ -361,6 +363,59 @@ wl_map_for_each(struct wl_map *map,
 wl_iterator_func_t func, void *data)
 for_each_helper(map-server_entries, func, data);
  }

 +WL_EXPORT bool
 +wl_strtol(const char *str, char **endptr, int base, long *val)
 +{
 +   char *end = NULL;
 +   long v;
 +
 +   if (!str || !val)
 +   return false;
 +   if (!endptr)
 +   endptr = end;
 +
 +   errno = 0;
 +   v = strtol(str, endptr, base);
 +   if (errno != 0 || *endptr == str || **endptr != '\0')
 +   return false;
 +
 +   *val = v;
 +   return true;
 +}
 +
 +WL_EXPORT bool
 +wl_strtoul(const char *str, char **endptr, int base, unsigned long *val)
 +{
 +   char *end = NULL;
 +   unsigned long v;
 +   int i = 0;
 +
 +   if (!str || !val)
 +   return false;
 +
 +   /* check for negative numbers */
 +   while (str[i]) {
 +   if (!isspace(str[i])) {
 +   if (str[i] == '-')
 +   return false;
 +   else
 +   break;
 +   }
 +   i++;
 +   }
 +
 +   if (!endptr)
 +   endptr = end;
 +
 +   errno = 0;
 +   v = strtoul(str, endptr, base);
 +   if (errno != 0 || *endptr == str || **endptr != '\0')
 +   return false;
 +
 +   *val = v;
 +   return true;
 +}
 +
  static void
  wl_log_stderr_handler(const char *fmt, va_list arg)
  {
 diff --git a/src/wayland-util.h b/src/wayland-util.h
 index fd32826..c66cc41 100644
 --- a/src/wayland-util.h
 +++ b/src/wayland-util.h
 @@ -36,6 +36,7 @@ extern C {
  #include stddef.h
  #include inttypes.h
  #include stdarg.h
 +#include stdbool.h

  /* GCC 

Re: [PATCH Weston 1/2] desktop-shell: refactor panel_add_launcher

2014-10-27 Thread Frederic Plourde

  
  
Ok, I split the patches and here's the
  one doing the refactor, below.
  
  Dan : the other patch (the one adding autolaunch per se) still
  needs a comment from you before I can update it. See below for the
  conversation, I'd like to have your comments about using/not using
  weston_client_start() and about adding an autostart param to it
  and to the config. thanks :)
  *
  
  Some other desktop-shell bits will be (re)using most of panel_add_launcher
code, so this patch extracts useful bits and pieces into a new function,
parse_launcher_path.

Signed-off-by: Frederic Plourde frederic.plou...@collabora.co.uk
---
 clients/desktop-shell.c | 38 --
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c
index 961a9b2..c8e2810 100644
--- a/clients/desktop-shell.c
+++ b/clients/desktop-shell.c
@@ -597,72 +597,82 @@ load_icon_or_fallback(const char *icon)
 	cairo_move_to(cr, 4, 16);
 	cairo_line_to(cr, 16, 4);
 	cairo_stroke(cr);
 
 	cairo_destroy(cr);
 
 	return surface;
 }
 
 static void
-panel_add_launcher(struct panel *panel, const char *icon, const char *path)
+parse_launcher_path(char *path, struct wl_array *envp_array, struct wl_array *argv_array)
 {
-	struct panel_launcher *launcher;
 	char *start, *p, *eq, **ps;
 	int i, j, k;
 
-	launcher = xzalloc(sizeof *launcher);
-	launcher-icon = load_icon_or_fallback(icon);
-	launcher-path = xstrdup(path);
+	struct wl_array *envp = envp_array;
+	struct wl_array *argv = argv_array;
 
-	wl_array_init(launcher-envp);
-	wl_array_init(launcher-argv);
+	wl_array_init(envp);
+	wl_array_init(argv);
 	for (i = 0; environ[i]; i++) {
-		ps = wl_array_add(launcher-envp, sizeof *ps);
+		ps = wl_array_add(envp, sizeof *ps);
 		*ps = environ[i];
 	}
 	j = 0;
 
-	start = launcher-path;
+	start = path;
 	while (*start) {
 		for (p = start, eq = NULL; *p  !isspace(*p); p++)
 			if (*p == '=')
 eq = p;
 
 		if (eq  j == 0) {
-			ps = launcher-envp.data;
+			ps = envp-data;
 			for (k = 0; k  i; k++)
 if (strncmp(ps[k], start, eq - start) == 0) {
 	ps[k] = start;
 	break;
 }
 			if (k == i) {
-ps = wl_array_add(launcher-envp, sizeof *ps);
+ps = wl_array_add(envp, sizeof *ps);
 *ps = start;
 i++;
 			}
 		} else {
-			ps = wl_array_add(launcher-argv, sizeof *ps);
+			ps = wl_array_add(argv, sizeof *ps);
 			*ps = start;
 			j++;
 		}
 
 		while (*p  isspace(*p))
 			*p++ = '\0';
 
 		start = p;
 	}
 
-	ps = wl_array_add(launcher-envp, sizeof *ps);
+	ps = wl_array_add(envp, sizeof *ps);
 	*ps = NULL;
-	ps = wl_array_add(launcher-argv, sizeof *ps);
+	ps = wl_array_add(argv, sizeof *ps);
 	*ps = NULL;
+}
+
+static void
+panel_add_launcher(struct panel *panel, const char *icon, const char *path)
+{
+	struct panel_launcher *launcher;
+
+	launcher = xzalloc(sizeof *launcher);
+	launcher-icon = load_icon_or_fallback(icon);
+	launcher-path = xstrdup(path);
+
+	parse_launcher_path(launcher-path, launcher-envp, launcher-argv);
 
 	launcher-panel = panel;
 	wl_list_insert(panel-launcher_list.prev, launcher-link);
 
 	launcher-widget = widget_add_widget(panel-widget, launcher);
 	widget_set_enter_handler(launcher-widget,
  panel_launcher_enter_handler);
 	widget_set_leave_handler(launcher-widget,
    panel_launcher_leave_handler);
 	widget_set_button_handler(launcher-widget,
-- 
1.9.1


  



  
  
  
  
  
  
  
   Frédéric Plourde
  Principal Software engineer
   T :: (450) 415-0855
@:: frederic.plou...@collabora.co.uk
  +
  Open First ! We're hiring !
  Our current opportunities can
  be found here: http://bit.ly/Collabora-Careers
  Visit Collabora on the Web at
  https://www.collabora.com

  
  On 14-10-24 06:18 AM, Pekka Paalanen wrote:


  On Fri, 24 Oct 2014 10:28:57 +0100
Daniel Stone dan...@fooishbar.org wrote:


  
Hi,

On 22 October 2014 14:53, Pekka Paalanen pekka.paala...@collabora.co.uk
wrote:



  +   pid = fork();
+   if (pid  0) {
+   fprintf(stderr, "fork failed: %m\n");
+   goto out;
+   }
+
+   if (pid)
+   goto out;
+
+   argvpp = argv.data;
+   if (execve(argvpp[0], argvpp, envp.data)  0) {
+   fprintf(stderr, "execl '%s' failed: %m\n", argvpp[0]);
+   exit(1);
+   }




Hmm. Can we please use weston_client_start here instead of open-coding it?

  
  
weston_client_start() does not support passing in environment
explicitly. It also automatically sets up WAYLAND_SOCKET environment
variable and creates a connection (wl_client) before the program even
starts.

I do not think it makes sense to use weston_client_start() 

Re: Reusing wl_egl_window for multiple EGL surfaces

2014-10-27 Thread Virtual Presence
I see. Thank you for the info. What i am trying to do is have multiple
contexts with its own EGLSurface but sharing the same window or
wl_surface on wayland, where one thread renders a gl_triangle and the other
rendering gears. This was a simple client to teach myself queues and IPC of
wayland, ofcourse it doesnt reflect real world clients. So with this
setup i was wondering if a resize on the wl_egl_window will seamlessly take
effect on both EGLSurfaces. Since there is no spec could it be possible
that different wayland EGL implementations will have different
interpretations on if/how to reuse the wl_egl_window OR are implementations
explicitly discouraged, may be to prevent themselves from blowing up in
weird ways, from reusing the same wl_egl_window concurrently? Also i am
assuming reuse of the wl_egl_window non-concurrently is permitted and wont
have issues?

On Mon, Oct 27, 2014 at 12:36 AM, Pekka Paalanen ppaala...@gmail.com
wrote:

 On Sat, 25 Oct 2014 17:14:32 -0700
 Virtual Presence virtualpresence.u...@gmail.com wrote:

  Hi,
 
  I am writing a simple multi-threaded multi-context GLES2 Wayland client.
 As
  required by Wayland and MESA EGL bindings i do create a wl_egl_window to
  pass on to EGL window surface creation. I was wondering if there is any
  spec or rule that disallows reuse of the same wl_egl_window for multiple
  EGLWindowSurface. I was wondering if i could use the same underlying
  wl_egl_window resize bindings to cause multiple resizes. If i cannot do
 the
  same i would like to know of a spec/rule/guide (say like an EGL spec)
 that
  lists all the creation, management, deletion and usage of this object.

 Hi,

 I cannot understand what you could possibly achieve by creating several
 EGLSurfaces for the same window. What do you want to do?

 Are you perhaps attempting to render different parts of a single window
 in different GL contexts and so using different EGLSurfaces with some
 clipping magic? Maybe relying that GLX (not EGL IIRC!) required the
 color buffers to be shared between clients/contexts?

 Or do you simply want a dummy EGLSurface for each context, and then use
 FBOs to do the work, without ever calling eglSwapBuffers except for the
 one context that actually draws in the window? Because there are no
 Pixmaps in EGL Wayland?

 I can't quote a spec off-hand, but I know the EGL Wayland platform does
 not support partial rendering. Every time you call eglSwapBuffers,
 the whole buffer content must be valid, as the display server is free
 to take the whole buffer as the new window contents. That's actually a
 Wayland specification: every buffer must be completely drawn, as the
 display server is allowed to use all of it, even if the associated
 damage is only a part of it.

 So, I don't think it is explicitly forbidden anywhere to create several
 EGLSurfaces for the same wl_egl_window, but it just doesn't make sense.
 The different (E)GL contexts using the different EGLSurfaces would be
 fighting over whose buffer ends up on screen. As such, I expect that
 case to be untested, and so likely hit bugs.

 FWIW, you'd be looking for an EGL Wayland platform specification, and
 one has not been written AFAIK, as has not been written for many of the
 other platforms either.


 Thanks,
 pq

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston] cairo-util: fix shadows for small clients

2014-10-27 Thread Bill Spitzak



On 10/15/2014 01:16 AM, Marek Chalupa wrote:

 +  shadow_height = height / 2;
+
+   /* when the height is odd, we need some part of the
+* shadow to be one pixel higher. Let's choose the
+* upper one */
+   if (height % 2 != 0  !fy)
+   ++shadow_height;


This does the same thing:
shadow_height = (height + (fy ? 0 : 1)) / 2;

If there is any chance height is negative you want to use 1 rather 
than /2. This is because it always rounds in the same direction (down 
rather than toward zero). I don't think negative height happens here, 
however.

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH 3/6] Attach output profiles and build corresponding LUTs

2014-10-27 Thread Niels Ole Salscheider
On Wednesday 15 October 2014, 21:56:53, Bryce Harrington wrote:
 On Mon, Oct 13, 2014 at 07:40:48PM +0200, Niels Ole Salscheider wrote:
  This patch allows to attach an ICC profile to each output.
  
  Signed-off-by: Niels Ole Salscheider niels_...@salscheider-online.de
  ---
  
   src/cms-colord.c |  4 +++-
   src/cms-helper.c | 16 +++-
   src/cms-helper.h |  3 ++-
   src/cms-static.c |  1 +
   src/compositor.c | 18 ++
   src/compositor.h |  2 ++
   6 files changed, 41 insertions(+), 3 deletions(-)
  
  diff --git a/src/cms-colord.c b/src/cms-colord.c
  index 4ff3aac..5696ea3 100644
  --- a/src/cms-colord.c
  +++ b/src/cms-colord.c
  @@ -155,8 +155,9 @@ colord_update_output_from_device (struct cms_output
  *ocms) 
  gint percentage;
  
  /* old profile is no longer valid */
  
  -   weston_cms_destroy_profile(ocms-p);
  +   weston_cms_destroy_profile(ocms-o, ocms-p);
  
  ocms-p = NULL;
  
  +   wl_signal_emit(ocms-o-profile_signal, ocms-o);
  
  ret = cd_device_connect_sync(ocms-device, NULL, error);
  if (!ret) {
  
  @@ -384,6 +385,7 @@ colord_dispatch_all_pending(int fd, uint32_t mask,
  void *data) 
  }
  
  weston_cms_set_color_profile(ocms-o, ocms-p);
  
  +   wl_signal_emit(ocms-o-profile_signal, ocms-o);
  
  }
  g_list_free (cms-pending);
  cms-pending = NULL;
  
  diff --git a/src/cms-helper.c b/src/cms-helper.c
  index c063c77..4e20f28 100644
  --- a/src/cms-helper.c
  +++ b/src/cms-helper.c
  @@ -25,6 +25,8 @@
  
   #include stdlib.h
   #include string.h
   #include stdio.h
  
  +#include fcntl.h
  +#include unistd.h
  
   #ifdef HAVE_LCMS
   #include lcms2.h
  
  @@ -63,6 +65,13 @@ weston_cms_set_color_profile(struct weston_output *o,
  
  uint16_t *red = NULL;
  uint16_t *green = NULL;
  uint16_t *blue = NULL;
  
  +   int fd;
  +
  +   fd = open(p-filename, 0);
  +   o-colorspace = weston_colorspace_from_fd(fd , 0, o-compositor);
  +   close(fd);
 
 error checking on the file open
 
  +   if (o-colorspace == NULL)
  +   o-colorspace = o-compositor-srgb_colorspace;
  
  if (!o-set_gamma)
  
  return;
  
  @@ -96,13 +105,18 @@ weston_cms_set_color_profile(struct weston_output *o,
  
   }
   
   void
  
  -weston_cms_destroy_profile(struct weston_color_profile *p)
  +weston_cms_destroy_profile(struct weston_output *o,
  +  struct weston_color_profile *p)
  
   {
   
  if (!p)
  
  return;
   
   #ifdef HAVE_LCMS
   
  cmsCloseProfile(p-lcms_handle);
   
   #endif
  
  +
  +   weston_colorspace_destroy(o-colorspace);
  +   o-colorspace = o-compositor-srgb_colorspace;
  +
  
  free(p-filename);
  free(p);
   
   }
  
  diff --git a/src/cms-helper.h b/src/cms-helper.h
  index 6e5594d..3fd17b3 100644
  --- a/src/cms-helper.h
  +++ b/src/cms-helper.h
  @@ -67,6 +67,7 @@ weston_cms_create_profile(const char *filename,
  
   struct weston_color_profile *
   weston_cms_load_profile(const char *filename);
   void
  
  -weston_cms_destroy_profile(struct weston_color_profile *p);
  +weston_cms_destroy_profile(struct weston_output *o,
  +  struct weston_color_profile *p);
  
   #endif
  
  diff --git a/src/cms-static.c b/src/cms-static.c
  index ad54fd1..c7dce58 100644
  --- a/src/cms-static.c
  +++ b/src/cms-static.c
  @@ -58,6 +58,7 @@ cms_output_created(struct cms_static *cms, struct
  weston_output *o) 
  weston_log(cms-static: loading %s for %s\n,
  
 profile, o-name);
  
  weston_cms_set_color_profile(o, p);
  
  +   wl_signal_emit(o-profile_signal, o);
  
  }
   
   }
  
  diff --git a/src/compositor.c b/src/compositor.c
  index 4f959a4..61b70e7 100644
  --- a/src/compositor.c
  +++ b/src/compositor.c
  @@ -3516,6 +3516,20 @@ weston_compositor_remove_output(struct
  weston_compositor *compositor, 
  }
   
   }
  
  +static void
  +weston_output_notifier_profile(struct wl_listener *listener, void *data)
  +{
  +/* TODO:
  +   struct weston_output *output = (struct weston_output *) data;
  +   struct weston_compositor *ec = output-compositor;
  +   struct weston_resource *resource;
  +
  +   for each wl_cms resource {
  +   wl_cms_send_output_colorspace_changed(resource, output);
  +   }
  +*/
 
 Is this supposed to be TODO'd out?
 If so, could use an explanatory statement.

Not really... It is implemented now.

  +}
  +
  
   WL_EXPORT void
   weston_output_destroy(struct weston_output *output)
   {
  
  @@ -3736,10 +3750,14 @@ weston_output_init(struct weston_output *output,
  struct weston_compositor *c, 
  wl_signal_init(output-frame_signal);
  wl_signal_init(output-destroy_signal);
  
  +   wl_signal_init(output-profile_signal);
  
  wl_list_init(output-animation_list);
  wl_list_init(output-resource_list);
  wl_list_init(output-feedback_list);
  
  +   

Re: [RFC PATCH v2 0/6] Initial per-surface color management

2014-10-27 Thread Niels Ole Salscheider
 The support to mask the area of a surface so that its color space is not
 converted has been removed. Instead, the color profile of the main output
 of that surface can be attached if an application has a need to display
 uncorrected colors.

I had a discussion regarding this with Zoxc on the IRC channel. Does it make 
sense to have a surface that is displayed uncorrected on multiple outputs with 
different output profiles?
If so then this is not enough to detect that no color conversion should be 
applied at all.
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: libinput: Support for long press key detection?

2014-10-27 Thread Bill Spitzak

On 10/26/2014 05:35 AM, Carsten Haitzler (The Rasterman) wrote:


to implement longpress you need to implement timeouts - this is where it begins
getting high level and far more hairy than libinput is. toolkits already do
this and have timeout infra with their mainloop handling.


That's not always true, especially for very simple toolkits (GLUT for 
example), and for demo code that shows how to use a window system api.



Should they also do press vs
drag handling too with hysteresis.


I think having the compositor do this would be an excellent idea. 
Currently it is very annoying that the rule for switching from click to 
drag varies somewhat between applications. hover detection and whether 
a click is a double would be immensely useful too. And get keyboard 
repeat in there too.


You are right that libinput should not do this. I see it as something 
the compositor does. It is just like the gestures for touch.



Then where is
the drag point? n pixels from first touch?


Yes. The rule for sending a drag started event is some integration of 
mouse motion and speed and second and third derivatives exceeding some 
threshold. It also needs to be per-device, some of them may be able to 
include pressure or other controls.



at boundary of widget?


No, obviously not. If the client gets a drag started event, it is free 
to remember that fact and not do anything about it until it gets motion 
outside the widget.



often dragging out of the widget cancels the click
action - again widget sets do this.


Of course the client does this. When the mouse goes outside the widget 
it stops dragging. Compositor does not care. Any feedback such as 
changing the cursor is done by the client.



should libinput do it? you are looking at a
long and obstacle-filled slippery slope to put this kind of thing in libinput.


I see it as immensely simpler than the api to communicate user 
preferences for this stuff to clients, which is going to be required if 
multiple seats and outputs and remote desktops are used.


Also gestures are already being done this way. The mouse and keyboard 
should not be different.

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH v3] wayland-util: added wl_strtol/wl_strtoul utility functions

2014-10-27 Thread Bill Spitzak

On 10/27/2014 09:51 AM, Jasper St. Pierre wrote:


+   if (!wl_strtol(since, NULL, 0, (long
*)version))


This is baad. You cannot use the int version here, because in
wl_strol you write sizeof(long) on the address
of version and if sizeof(version) is smaller than sizeof(long) then
you overwrite memory. I'm getting ugly SIGSEGV
because of that.


That is annoying since it means an integer version must be provided as 
well (plus the annoyance that on some platforms it will not complain and 
work if you call the wrong function).


I think it would be better now to make this function return the value, 
and set errno on any error. Or make the error indicator an output 
parameter. I'd also dump the base parameter as it is not being used by 
anybody.


___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Bill Spitzak

Looks good to me!

I'll check if this is also needed for the 14.04 instructions. Probably 
it is.


Also when I did these instructions, I just wrote what I found worked by 
pretty much blind searching. I am wondering if I missed some method to 
compile all known xorg/proto stuff in one step. I notice that xcb 
support seems to compile all it's prototypes in one step. Anybody 
familiar with the X code base know if I missed something?


On 10/27/2014 12:25 AM, Jon A. Cruz wrote:

---
  ubuntu12.04.html | 10 +-
  1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/ubuntu12.04.html b/ubuntu12.04.html
index 804433e..7576fd4 100644
--- a/ubuntu12.04.html
+++ b/ubuntu12.04.html
@@ -15,7 +15,8 @@ Building Weston on Ubuntu 12.04/h1
  XWayland on an Ubuntu 12.04 LTS system, on May 23rd, 2014. This system had
  previously been used to compile Xlib programs, and thus already had
  some dependencies (such as git, the compiler, and X11 header files)
-installed./p
+installed. Dependencies were last updated from a successful build
+on October 20th, 2014./p

  pParallel make (codemake -j 9/code) will probably work on all
  packages but only the ones shown were compiled this way./p
@@ -39,6 +40,7 @@ mkdir -p $ACLOCAL_PATH

  span class=comment# dependencies for libwayland:/span
  sudo apt-get install doxygen span class=comment# or use 
--disable-documentation/span
+sudo apt-get install xmlto span class=comment# or use 
--disable-documentation/span

  span class=comment# libwayland-*:/span
  git clone git://anongit.freedesktop.org/wayland/wayland
@@ -253,6 +255,12 @@ cd libxkbfile
  make amp;amp; make install
  cd ..

+git clone git://anongit.freedesktop.org/xorg/proto/scrnsaverproto
+cd scrnsaverproto
+./autogen.sh --prefix=$WLD
+make amp;amp; make install
+cd ..
+
  span class=comment# XWayland:/span
  git clone git://anongit.freedesktop.org/xorg/xserver
  cd xserver


___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Jon A. Cruz
On Mon, Oct 27, 2014, at 11:39 AM, Bill Spitzak wrote:
 Looks good to me!
 
 I'll check if this is also needed for the 14.04 instructions. Probably 
 it is.


Uh oh. I targeted the wrong file, as this was actually against 14.04.
Just hard coordinating this code from a hospital waiting room with poor
wifi (aka difficult to ssh back to my Linux box).

Should I clean up and resubmit?

-- 
  Jon A. Cruz
  j...@joncruz.org
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: libinput: Support for long press key detection?

2014-10-27 Thread The Rasterman
On Mon, 27 Oct 2014 11:16:16 -0700 Bill Spitzak spit...@gmail.com said:

 On 10/26/2014 05:35 AM, Carsten Haitzler (The Rasterman) wrote:
 
  to implement longpress you need to implement timeouts - this is where it
  begins getting high level and far more hairy than libinput is. toolkits
  already do this and have timeout infra with their mainloop handling.
 
 That's not always true, especially for very simple toolkits (GLUT for 
 example), and for demo code that shows how to use a window system api.

glut is a pretty primitive toolkit and doesn't do a very large amount of things
most of the full toolkits do, like have any timed infra. you could do it with a
slave thread though.

  Should they also do press vs
  drag handling too with hysteresis.
 
 I think having the compositor do this would be an excellent idea. 
 Currently it is very annoying that the rule for switching from click to 
 drag varies somewhat between applications. hover detection and whether 
 a click is a double would be immensely useful too. And get keyboard 
 repeat in there too.
 
 You are right that libinput should not do this. I see it as something 
 the compositor does. It is just like the gestures for touch.

now you're higher level - compositor. slight problem here is that to do click
cancellation the compositor would need to know the geometry of every clickable
element (button) within every surface at all times. this kind of violates a lot
of wayland design principles. click vs drag is more universal though, but then
we need to creat new event protocols for indicating this drag begin event for
instance. another event for longpressed etc. - the compositor does have
mainloop infra and thus timeouts don't have to be hacked into threads just to
stuff one into the wrong layer.

  Then where is
  the drag point? n pixels from first touch?
 
 Yes. The rule for sending a drag started event is some integration of 
 mouse motion and speed and second and third derivatives exceeding some 
 threshold. It also needs to be per-device, some of them may be able to 
 include pressure or other controls.
 
  at boundary of widget?
 
 No, obviously not. If the client gets a drag started event, it is free 
 to remember that fact and not do anything about it until it gets motion 
 outside the widget.
 
  often dragging out of the widget cancels the click
  action - again widget sets do this.
 
 Of course the client does this. When the mouse goes outside the widget 
 it stops dragging. Compositor does not care. Any feedback such as 
 changing the cursor is done by the client.
 
  should libinput do it? you are looking at a
  long and obstacle-filled slippery slope to put this kind of thing in
  libinput.
 
 I see it as immensely simpler than the api to communicate user 
 preferences for this stuff to clients, which is going to be required if 
 multiple seats and outputs and remote desktops are used.
 
 Also gestures are already being done this way. The mouse and keyboard 
 should not be different.

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Peter Hutterer
On Mon, Oct 27, 2014 at 11:39:39AM -0700, Bill Spitzak wrote:
 Looks good to me!
 
 I'll check if this is also needed for the 14.04 instructions. Probably it
 is.
 
 Also when I did these instructions, I just wrote what I found worked by
 pretty much blind searching. I am wondering if I missed some method to
 compile all known xorg/proto stuff in one step. I notice that xcb support
 seems to compile all it's prototypes in one step. Anybody familiar with the
 X code base know if I missed something?

xcb has all protocol headers in one repository, in X they're separate
repositories so you have to build them separately.

Cheers,
   Peter

 
 On 10/27/2014 12:25 AM, Jon A. Cruz wrote:
 ---
   ubuntu12.04.html | 10 +-
   1 file changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/ubuntu12.04.html b/ubuntu12.04.html
 index 804433e..7576fd4 100644
 --- a/ubuntu12.04.html
 +++ b/ubuntu12.04.html
 @@ -15,7 +15,8 @@ Building Weston on Ubuntu 12.04/h1
   XWayland on an Ubuntu 12.04 LTS system, on May 23rd, 2014. This system had
   previously been used to compile Xlib programs, and thus already had
   some dependencies (such as git, the compiler, and X11 header files)
 -installed./p
 +installed. Dependencies were last updated from a successful build
 +on October 20th, 2014./p
 
   pParallel make (codemake -j 9/code) will probably work on all
   packages but only the ones shown were compiled this way./p
 @@ -39,6 +40,7 @@ mkdir -p $ACLOCAL_PATH
 
   span class=comment# dependencies for libwayland:/span
   sudo apt-get install doxygen span class=comment# or use 
  --disable-documentation/span
 +sudo apt-get install xmlto span class=comment# or use 
 --disable-documentation/span
 
   span class=comment# libwayland-*:/span
   git clone git://anongit.freedesktop.org/wayland/wayland
 @@ -253,6 +255,12 @@ cd libxkbfile
   make amp;amp; make install
   cd ..
 
 +git clone git://anongit.freedesktop.org/xorg/proto/scrnsaverproto
 +cd scrnsaverproto
 +./autogen.sh --prefix=$WLD
 +make amp;amp; make install
 +cd ..
 +
   span class=comment# XWayland:/span
   git clone git://anongit.freedesktop.org/xorg/xserver
   cd xserver
 
 ___
 wayland-devel mailing list
 wayland-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/wayland-devel
 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH libinput] evdev: Log evdev event queue overflows

2014-10-27 Thread Peter Hutterer
On Mon, Oct 27, 2014 at 09:33:45AM -0500, Derek Foreman wrote:
 A couple of questions on this one:
 Is it ok to limit logging to 10 messages like this?

IMO yes.

 Should I be doing that on a per device basis instead of globally?

you are doing it per-device here, I'm not sure what you mean with the
question, sorry.

 
 (I'm totally unattached to the specifics of the log text, I believe X
 says something clever about how it's not the X server's fault to avoid
 silly bug reports...)

that's a different error message, caused when the server-internal EQ
overflows. and the reason for the message is because the backtrace that X
prints then shows the input code as culprit, when the real issue is 5-6
stack frames up the stack. this wouldn't be necessary here, though we could
theoretically run into the same issue: if rendering delays reading from the
input fds for too long, we can trigger SYN_DROPPED.

Cheers,
   Peter

 On 27/10/14 09:26 AM, Derek Foreman wrote:
  Log a message when the kernel event queue overflows and events are dropped.
  After 10 messages logging stops to avoid flooding the logs if the condition
  is persistent.
  ---
   src/evdev.c | 10 ++
   1 file changed, 10 insertions(+)
  
  diff --git a/src/evdev.c b/src/evdev.c
  index 1b4ce10..c786537 100644
  --- a/src/evdev.c
  +++ b/src/evdev.c
  @@ -912,6 +912,7 @@ evdev_sync_device(struct evdev_device *device)
   static void
   evdev_device_dispatch(void *data)
   {
  +   static int overflows = 0;
  struct evdev_device *device = data;
  struct libinput *libinput = device-base.seat-libinput;
  struct input_event ev;
  @@ -924,6 +925,15 @@ evdev_device_dispatch(void *data)
  rc = libevdev_next_event(device-evdev,
   LIBEVDEV_READ_FLAG_NORMAL, ev);
  if (rc == LIBEVDEV_READ_STATUS_SYNC) {
  +   if (overflows  10) {
  +   overflows++;
  +   log_info(libinput, Kernel evdev event queue 
  +overflow for %s\n, device-devname);
  +   if (overflows == 10)
  +   log_info(libinput, No longer logging 
  +evdev event queue 
  overflows\n);
  +   }
  +
  /* send one more sync event so we handle all
 currently pending events before we sync up
 to the current state */
  
 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH libinput] evdev: Log evdev event queue overflows

2014-10-27 Thread Peter Hutterer
On Mon, Oct 27, 2014 at 09:26:39AM -0500, Derek Foreman wrote:
 Log a message when the kernel event queue overflows and events are dropped.
 After 10 messages logging stops to avoid flooding the logs if the condition
 is persistent.
 ---
  src/evdev.c | 10 ++
  1 file changed, 10 insertions(+)
 
 diff --git a/src/evdev.c b/src/evdev.c
 index 1b4ce10..c786537 100644
 --- a/src/evdev.c
 +++ b/src/evdev.c
 @@ -912,6 +912,7 @@ evdev_sync_device(struct evdev_device *device)
  static void
  evdev_device_dispatch(void *data)
  {
 + static int overflows = 0;

tbh, I'd prefer some naming like syn_dropped_received or somesuch.
'overflow' has a lot of different meanings, syn_dropped means exactly one
thing.

same goes for the message, if you put SYN_DROPPED in there it's really easy
to google for it (e.g. libevdev has a page that details what happens).
Kernel evdev event queue overflow is harder to figure out, so we'd have to
explain it more often to peopl on the lists.

ack to the rest.

Cheers,
   Peter


   struct evdev_device *device = data;
   struct libinput *libinput = device-base.seat-libinput;
   struct input_event ev;
 @@ -924,6 +925,15 @@ evdev_device_dispatch(void *data)
   rc = libevdev_next_event(device-evdev,
LIBEVDEV_READ_FLAG_NORMAL, ev);
   if (rc == LIBEVDEV_READ_STATUS_SYNC) {
 + if (overflows  10) {
 + overflows++;
 + log_info(libinput, Kernel evdev event queue 
 +  overflow for %s\n, device-devname);
 + if (overflows == 10)
 + log_info(libinput, No longer logging 
 +  evdev event queue 
 overflows\n);
 + }
 +
   /* send one more sync event so we handle all
  currently pending events before we sync up
  to the current state */
 -- 
 2.1.1
 
 ___
 wayland-devel mailing list
 wayland-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/wayland-devel
 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


ANNOUNCE: New Wayland Live CD ISOs

2014-10-27 Thread nerdopolis
Hi. 

I have decided to announce new ISOs for my Wayland live CD, named in honor my 
favorite celebrity, Rebecca Black. 
http://sourceforge.net/projects/rebeccablackos/files/2014-10-27/

These ISOs have been built by SVN revision 3013, and are based on Utopic, with 
Wayland/Weston 1.6+ (master).

SuperTux2, which has recently ported to SDL2, is now on the ISO, which is the 
means there is a native SDL2 application on the ISO, other than the demos 
(finally).


The WaylandLoginManager:
Now supports Wayland servers that run as Wayland clients, such as Kwin, 
and Greenisland, although there aren't any selectable sessions that use this 
yet.
Now filters all data sent to the communication FIFO with grep running 
as daemon, so that it can't be crashed, as although I haven't heard of any of 
the vulnerabilities through the bash read command, it's better to be safe.
Now be reloaded, without it losing fast user switching data, and 
jumping to the wrong tty.
Now starts all fallback text dialogs as the daemon user instead of 
root, in the case Weston fails to start on particular hardware.


Also, I tried to make a few efforts to control the ISO size, and there where a 
few changes to select better default applications on the Weston panel, for 
better desktop like usability. They are all now native Wayland applications, 
except for the xterm dedicated to starting xwayland apps instead.

Like the last ISOs, these have GTK, Qt, SDL, Enlightenement for Wayland 
toolkits, and Gnome Shell and Weston and Enlightenment and SWC for Wayland 
desktops.

Unfortunately this ISO does not have Orbital, Hawaii, or Calligra, as it is 
depending on libweston, which is yet to be merged, Hawaii is depending on some 
yet to be merged changes in QtWayland's QtCompositor for screen handling, and 
Calligra's QT5 port is paused, (but I hear they plan to overhaul the Qt 5 port 
in the near future.)


In a future ISO, once I figure out how to run it, and it becomes more runnable, 
I will have kwin/plasma as a selectable Wayland session.

md5sum:
c538d6209cf8c5924961bc5075aa6865  RebeccaBlackLinux_DevDbg_i386.iso
64948e151ec09f422ae23b1658cea512  RebeccaBlackLinux_i386.iso
4efb20c5912e27571554638d35815a2b  RebeccaBlackLinux_Revisions_i386.txt
a1427af2bb1c3b7f10c6c68d3ac79599  RebeccaBlackLinux_Source_i386.tar.gz
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: libinput: Support for long press key detection?

2014-10-27 Thread Bill Spitzak

On 10/27/2014 04:08 PM, Carsten Haitzler (The Rasterman) wrote:


You are right that libinput should not do this. I see it as something
the compositor does. It is just like the gestures for touch.


now you're higher level - compositor. slight problem here is that to do click
cancellation the compositor would need to know the geometry of every clickable
element (button) within every surface at all times.


Can you explain why that would be needed?

I figured if a client cancelled a click it would just ignore the 
events after that. This would not cause any information to be lost, the 
client would get all the press/release/move events it does now, so I 
don't see any reason the compositor needs to know, or if it does need to 
know then the compositor would need to know this information with the 
current version of Wayland.




___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH wayland-web] Updated additional dependencies for a cleaner Ubuntu 12.04 LTS system.

2014-10-27 Thread Bill Spitzak

On 10/27/2014 01:44 PM, Jon A. Cruz wrote:

On Mon, Oct 27, 2014, at 11:39 AM, Bill Spitzak wrote:

Looks good to me!

I'll check if this is also needed for the 14.04 instructions. Probably
it is.



Uh oh. I targeted the wrong file, as this was actually against 14.04.
Just hard coordinating this code from a hospital waiting room with poor
wifi (aka difficult to ssh back to my Linux box).

Should I clean up and resubmit?


I just checked and the 14.04 instructions have --disable-documentation, 
which is why they worked (they also have the screen saver proto files 
that you added).


Probably it would be best if the 14.04 instructions built the 
documentation, since patching that up is something a new developer might 
do first.


I still have the 12 machine so I can try building on that and see if 
this is needed.



___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel