Commit Graph

468 Commits

Author SHA1 Message Date
Guido Günther
c3a54595ea layersurface: Refresh layersurface on map
If the surface gets unmapped and mapped again we have another GDK window
so we have to reconfigure the layers surface on map and destroy it on
unmap.

This will be merged back into phosh if it works out.
2019-07-16 18:52:36 +02:00
Guido Günther
5827827008 Update layer surface code from phosh
As of commit 77bba4fcb2d836a58ccf8913d9a514aac6cc49a2. This allows
us to split the widget creation from making it visible.
2019-07-16 18:47:55 +02:00
David Boddie
fbdc5f4a93 Stash for sharing 2019-07-16 14:00:41 +02:00
David Boddie
e5648a82a3 Remove explicit keycodes in XML, auto-generate them instead
This makes it easier to keep the geometry and symbols files in sync.
2019-07-16 14:00:41 +02:00
Guido Gunther
922495ca06 Merge branch 'remove-unused-files' into 'master'
Remove unused files and functions

See merge request Librem5/squeekboard!79
2019-07-16 07:16:29 +00:00
David Boddie
e5e2e08ff4 Merge branch 'fewer-redraws' into 'master'
keyboard: Schedule widget redraw instead of gdk_window_invalidate_rect

See merge request Librem5/squeekboard!75
2019-07-15 22:57:12 +00:00
David Boddie
c7c410210b Merge branch 'scale' into 'master'
Honor widget scale  factor

See merge request Librem5/squeekboard!56
2019-07-15 22:27:34 +00:00
David Boddie
6f5f49729c Remove unused files and functions 2019-07-15 23:45:17 +02:00
Guido Günther
94c9442de1 keyboard: Drop now unused clip_bounds_to_dirty_rectangle() 2019-07-15 17:42:32 +02:00
Guido Günther
8c044d0852 keyboard: Schedule widget redraw instead of gdk_window_invalidate_rect
The later would invaliate the drawn area again and again in a ::draw()
handler. This caused infinite redraws when e.g. a key was locked.  To
reproduce break e.g. on `eek_gtk_keyboard_real_draw()` and see how it is
invoked again and again.
2019-07-15 17:42:32 +02:00
Guido Günther
1f0cc0a5f3 keyboard: Don't leak on set_keyboard()
Unref and disconnect signals before setting a new keyboard.
2019-07-15 14:12:10 +02:00
Guido Günther
5693ce3df7 keyboard: Simplify signal disconnect
We're only keeping the signal ids around for disconnect but that only
happens in dispose so it's o.k.to just disconnect all keyboard signals
we listen to.
2019-07-15 14:12:10 +02:00
Guido Günther
086f6bd772 renderer: Only scale by output scale
The original eekboard code scaled icons by a factor. That was simplified
in c529e9ed9c but we can do away with it
completely and fetch the icons at the right size making them not blurry.
2019-07-15 13:23:16 +02:00
Guido Günther
d0fa444a0e Honor the outputs scale factor 2019-07-15 13:13:34 +02:00
Guido Günther
cd81aeb286 get_icon_surface: Add a scale argument
This will allow us to pass the output scale around
2019-07-15 13:13:34 +02:00
Guido Günther
7db33bc92e renderer: Add icons in resource bundle to the icon theme 2019-07-15 13:13:34 +02:00
Guido Günther
fb6c501e44 renderer: Use gtk_icon_theme_load_surface
This will allow us to feed in the output scale.
2019-07-15 13:12:26 +02:00
David Boddie
4d8d3a8109 Merge branch 'suppress-warnings' into 'master'
Suppress warning message

See merge request Librem5/squeekboard!70
2019-07-13 22:14:54 +00:00
David Boddie
a183cf8b63 Suppress warning message 2019-07-14 00:13:41 +02:00
David Boddie
f834edcf94 Merge branch 'fix-compiler-warnings' into 'master'
Fix use of inappropriate type

See merge request Librem5/squeekboard!69
2019-07-13 19:47:40 +00:00
David Boddie
17802a9408 Fix use of inappropriate type 2019-07-13 18:36:59 +02:00
David Boddie
62b1c2ba84 Revert to latch behavior for letters 2019-07-12 19:54:21 +00:00
David Boddie
fb5ec5557b Make icons smaller 2019-07-12 20:12:09 +02:00
David Boddie
2774c1c988 Try to load icons from app resources first 2019-07-12 20:04:22 +02:00
David Boddie
7d5b2dd1de Reduce icon size to match platform guidelines 2019-07-12 16:10:31 +02:00
David Boddie
44110fd4d9 Remove bounds for everything except the geometry element 2019-07-12 14:00:20 +00:00
David Boddie
de39256377 Remove pop-ups for pressed keys 2019-07-11 23:39:33 +00:00
David Boddie
8ad0192e55 Fix clipping issue at bottom of keyboard
Closes #47.
2019-07-11 23:04:29 +00:00
David Boddie
c85638be4d Use a dummy, non-emitting key to switch views 2019-07-11 19:38:02 +00:00
David Boddie
07c25d1d91 Improve view behavior to more closely reflect #38 2019-07-11 16:29:26 +00:00
Guido Günther
c529e9ed9c render: Simplify drawing
Instead of doing scale guessing we know that we get a properly
sized image from GTK+ so just scale it down a bit so it gets
some border within the drawing area.
2019-07-11 15:40:18 +02:00
Guido Günther
d6a8a85b5e render: Get foreground color only once 2019-07-11 15:40:18 +02:00
Guido Günther
3a945535f7 render: Remove trailing white space 2019-07-11 15:40:18 +02:00
Guido Günther
0fc4374193 gtk-renderer: Simplify 2019-07-11 15:40:18 +02:00
Hysterical Raisins
5efb4cc58d Bundle keyboard definitions
This allows running uninstalled from a git repo

Closes: #21, #29
2019-07-11 13:40:03 +02:00
David Boddie
47041b0fac Implement basic keyboard views
Use existing concepts of levels and modifier latches and locks to
implement the three view design of issue #38.

The use of a lock to switch from letter to numbers and a latch to
handle upper and lower case has side effects, but these can be
addressed in a future commit.
2019-07-10 23:33:45 +00:00
David Boddie
1b59c4dad3 Use an icon for backspace 2019-07-10 14:36:19 +02:00
David Boddie
1ff1592f24 Merge branch 'master' into 'use_gresource'
# Conflicts:
#   src/server-context-service.c
2019-07-10 11:35:40 +00:00
David Boddie
a571bd7dca Remove unused color definitions 2019-07-09 17:55:40 +02:00
David Boddie
f79b5dadbb Use a macro to declare a type with private data 2019-07-09 00:41:25 +02:00
David Boddie
6702edaa9d Merge branch 'fix-deprecated-warnings' into 'master'
Fix deprecated warnings

See merge request Librem5/squeekboard!34
2019-07-08 21:19:57 +00:00
Hysterical Raisins
1d1829f664 fix accidentally committed line (-Wincompatible-pointer-types) 2019-07-08 09:18:41 +02:00
Hysterical Raisins
094aa872ce Cleanups: fix deprecated g_type_class_add_private()
- use G_DECLARE_ and G_DEFINE_ macros
- move all data into ClassNamePrivate
- use _get_instance_private()

This should not introduce any functional changes or breakage.

Skipped two classes (EekKeyboard and EekboardContextService) for now in
order not to break the build.

These two classes are used in some very funky WIP code that tries to
circumvent encapsulation.

(Funky code is in eekboard/key-emitter.c and eekboard/eekboard-context-service.c)
2019-07-08 08:44:05 +02:00
Hysterical Raisins
eaf925e30b Cleanups: fix g_type_init() deprecation warning
None of this seems necessary anymore. This file could be axed, but leave
it for now.
2019-07-08 08:39:43 +02:00
Hysterical Raisins
ae5eaeec93 Fix an uninitialized-variable warning, and fixes gradients 2019-07-07 18:45:56 +02:00
Hysterical Raisins
0e8715b4ff Improve key rendering and eliminate two deprecation warnings
- Replace two calls to deprecated gdk_cairo_create()

- Alleviate asymmetry between rendering pressed and released keys
  by consistenly clipping the same area up front to avoid
  artefacts

- make sure pressed and released keys are shown immediately by
  calling gdk_window_invalidate_rect()

- improve consistency between render_(pressed|locked|released)_key

- improve code flow
2019-07-07 11:34:24 +02:00
Dorota Czaplejewicz
d6f7c271e2 Merge branch 'kill-automake' into 'master'
Remove automake leftovers

See merge request Librem5/squeekboard!27
2019-07-04 18:26:24 +00:00
Guido Günther
abf8f4daa8 eek-theme: Remove code for old croko versions
These versions aren't even in Debian's oldstable release.
2019-07-04 16:21:18 +02:00
Guido Günther
aba242301d Use a gresource to store the css
This makes build / test faster since one can skip install. It's
also more obvious which file is being used.
2019-07-04 16:16:04 +02:00
Guido Günther
7a52080940 Remove automake leftovers 2019-07-04 14:51:00 +02:00