Skip to content

Commit 78a253f

Browse files
committed
Update documentation build scripts
1 parent bd9616e commit 78a253f

File tree

6 files changed

+135
-124
lines changed

6 files changed

+135
-124
lines changed

.github/workflows/docs.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
sudo apt install -y build-essential sudo git wget curl python3-sphinx rsync
2020
2121
# install sugar-toolkit-gtk3 dependencies
22-
sudo apt install -y python-all-dev python3-all-dev libgtk-3-dev
22+
sudo apt install -y python-dev-is-python3 python3-dev libgtk-3-dev
2323
sudo apt install -y libgdk-pixbuf2.0-dev libsm-dev libice-dev librsvg2-dev
2424
sudo apt install -y libxfixes-dev libxi-dev libx11-dev gettext intltool
2525
sudo apt install -y libxml-parser-perl x11proto-core-dev libasound2-dev

ci/docs.sh

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ sudo make
1919

2020
# make documentation
2121
show-green "Building documentation"
22+
sphinx-build -b html doc doc/_build/html
2223
./make-doc.sh
23-
mkdir deploy
24+
mkdir -p deploy
2425
cp -r doc/_build/html deploy/sugar3
2526
touch deploy/.nojekyll
2627
# create an index.html so that users don't become confused
@@ -29,4 +30,4 @@ echo "<h1>Page Moved</h1>" > deploy/index.html
2930
echo "<p>We have moved this page to <a href=\"https://github.com/sugarlabs/sugar-docs/blob/master/README.md\">GitHub</a>.</p>" >> deploy/index.html
3031
echo "<p>How did you get here? Please <a href=\"https://github.com/sugarlabs/sugar-docs/issues\">report</a> any lingering links.</p>" >> deploy/index.html
3132

32-
show-green "Done"
33+
show-green "Done"

doc/Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ endif
1515
# Internal variables.
1616
PAPEROPT_a4 = -D latex_paper_size=a4
1717
PAPEROPT_letter = -D latex_paper_size=letter
18-
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
18+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
1919
# the i18n builder cannot share the environment and doctrees with the others
2020
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
2121

@@ -52,9 +52,9 @@ clean:
5252
rm -rf $(BUILDDIR)/*
5353

5454
html:
55-
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
56-
@echo
57-
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
55+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
56+
@echo
57+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
5858

5959
dirhtml:
6060
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml

doc/conf.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,14 @@
3333
# ones.
3434
extensions = [
3535
'sphinx.ext.autodoc',
36-
'sphinx.ext.intersphinx'
36+
'sphinx.ext.intersphinx',
37+
'sphinx.ext.napoleon'
3738
]
38-
if major >= 1 and minor >= 3:
39-
# Included in Sphinx 1.3
40-
extensions.append('sphinx.ext.napoleon')
41-
else:
42-
extensions.append('sphinxcontrib.napoleon')
39+
# if major >= 1 and minor >= 3:
40+
# # Included in Sphinx 1.3
41+
# extensions.append('sphinx.ext.napoleon')
42+
# else:
43+
# extensions.append('sphinxcontrib.napoleon')
4344

4445
intersphinx_mapping = {
4546
'glib': ('http://lazka.github.io/pgi-docs/GLib-2.0', None),

make-doc.sh

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
#!/bin/sh
2+
set -e
3+
4+
if [ ! -d "src" ]; then
5+
echo "Error: ../src directory does not exist."
6+
exit 1
7+
fi
8+
9+
if [ ! -d "doc" ]; then
10+
echo "Error: doc directory does not exist."
11+
exit 1
12+
fi
213

314
sphinx-apidoc --force --separate --output-dir=doc src
4-
make -C doc html
15+
make -C doc html

src/sugar3/sugar-key-grabber.c

+108-110
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include <X11/extensions/XInput2.h>
2323
#include <gdk/gdk.h>
2424
#include <gdk/gdkx.h>
25-
2625
#include "sugar-key-grabber.h"
2726
#include "eggaccelerators.h"
2827
#include "sugar-marshal.h"
@@ -37,9 +36,9 @@
3736
#define USED_MODS (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK)
3837

3938
enum {
40-
KEY_PRESSED,
41-
KEY_RELEASED,
42-
N_SIGNALS
39+
KEY_PRESSED,
40+
KEY_RELEASED,
41+
N_SIGNALS
4342
};
4443

4544
typedef struct {
@@ -56,30 +55,30 @@ static guint signals[N_SIGNALS];
5655
static void
5756
free_key_info(Key *key_info)
5857
{
59-
g_free(key_info->key);
60-
g_free(key_info);
58+
g_free(key_info->key);
59+
g_free(key_info);
6160
}
6261

6362
static void
6463
sugar_key_grabber_dispose (GObject *object)
6564
{
66-
SugarKeyGrabber *grabber = SUGAR_KEY_GRABBER(object);
65+
SugarKeyGrabber *grabber = SUGAR_KEY_GRABBER(object);
6766

68-
if (grabber->keys) {
69-
g_list_foreach(grabber->keys, (GFunc)free_key_info, NULL);
70-
g_list_free(grabber->keys);
71-
grabber->keys = NULL;
72-
}
67+
if (grabber->keys) {
68+
g_list_foreach(grabber->keys, (GFunc)free_key_info, NULL);
69+
g_list_free(grabber->keys);
70+
grabber->keys = NULL;
71+
}
7372
}
7473

7574
static void
7675
sugar_key_grabber_class_init(SugarKeyGrabberClass *grabber_class)
7776
{
78-
GObjectClass *g_object_class = G_OBJECT_CLASS (grabber_class);
77+
GObjectClass *g_object_class = G_OBJECT_CLASS (grabber_class);
7978

80-
g_object_class->dispose = sugar_key_grabber_dispose;
79+
g_object_class->dispose = sugar_key_grabber_dispose;
8180

82-
signals[KEY_PRESSED] = g_signal_new ("key-pressed",
81+
signals[KEY_PRESSED] = g_signal_new ("key-pressed",
8382
G_TYPE_FROM_CLASS (grabber_class),
8483
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
8584
G_STRUCT_OFFSET (SugarKeyGrabberClass, key_pressed),
@@ -89,7 +88,7 @@ sugar_key_grabber_class_init(SugarKeyGrabberClass *grabber_class)
8988
G_TYPE_UINT,
9089
G_TYPE_UINT,
9190
G_TYPE_UINT);
92-
signals[KEY_RELEASED] = g_signal_new ("key-released",
91+
signals[KEY_RELEASED] = g_signal_new ("key-released",
9392
G_TYPE_FROM_CLASS (grabber_class),
9493
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
9594
G_STRUCT_OFFSET (SugarKeyGrabberClass, key_released),
@@ -104,73 +103,73 @@ sugar_key_grabber_class_init(SugarKeyGrabberClass *grabber_class)
104103
char *
105104
sugar_key_grabber_get_key(SugarKeyGrabber *grabber, guint keycode, guint state)
106105
{
107-
GList *l;
106+
GList *l;
108107

109-
for (l = grabber->keys; l != NULL; l = l->next) {
110-
Key *keyinfo = (Key *)l->data;
111-
if ((keyinfo->keycode == keycode) &&
112-
((state & USED_MODS) == keyinfo->state)) {
113-
return g_strdup(keyinfo->key);
114-
}
115-
}
108+
for (l = grabber->keys; l != NULL; l = l->next) {
109+
Key *keyinfo = (Key *)l->data;
110+
if ((keyinfo->keycode == keycode) &&
111+
((state & USED_MODS) == keyinfo->state)) {
112+
return g_strdup(keyinfo->key);
113+
}
114+
}
116115

117-
return NULL;
116+
return NULL;
118117
}
119118

120119
static GdkFilterReturn
121120
filter_events(GdkXEvent *xevent, GdkEvent *event, gpointer data)
122121
{
123-
SugarKeyGrabber *grabber = (SugarKeyGrabber *)data;
124-
XEvent *xev = (XEvent *)xevent;
125-
126-
if (xev->type == KeyRelease) {
127-
int return_value;
128-
g_signal_emit (grabber, signals[KEY_RELEASED], 0, xev->xkey.keycode,
129-
xev->xkey.state, xev->xkey.time, &return_value);
130-
if(return_value)
131-
return GDK_FILTER_REMOVE;
132-
}
133-
134-
if (xev->type == KeyPress) {
135-
int return_value;
136-
g_signal_emit (grabber, signals[KEY_PRESSED], 0, xev->xkey.keycode,
137-
xev->xkey.state, xev->xkey.time, &return_value);
138-
if(return_value)
139-
return GDK_FILTER_REMOVE;
140-
}
141-
142-
if (xev->type == GenericEvent) {
143-
XIDeviceEvent *ev;
144-
int return_value = FALSE;
145-
146-
ev = (XIDeviceEvent *) ((XGenericEventCookie *) xev)->data;
147-
148-
if (ev->evtype == XI_KeyPress) {
149-
g_signal_emit (grabber, signals[KEY_PRESSED], 0,
150-
ev->detail, ev->mods.effective, ev->time, &return_value);
151-
} else if (ev->evtype == XI_KeyRelease) {
152-
g_signal_emit (grabber, signals[KEY_RELEASED], 0,
153-
ev->detail, ev->mods.effective, ev->time, &return_value);
154-
}
155-
156-
if (return_value)
157-
return GDK_FILTER_REMOVE;
158-
}
159-
160-
161-
return GDK_FILTER_CONTINUE;
122+
SugarKeyGrabber *grabber = (SugarKeyGrabber *)data;
123+
XEvent *xev = (XEvent *)xevent;
124+
125+
if (xev->type == KeyRelease) {
126+
int return_value;
127+
g_signal_emit (grabber, signals[KEY_RELEASED], 0, xev->xkey.keycode,
128+
xev->xkey.state, xev->xkey.time, &return_value);
129+
if(return_value)
130+
return GDK_FILTER_REMOVE;
131+
}
132+
133+
if (xev->type == KeyPress) {
134+
int return_value;
135+
g_signal_emit (grabber, signals[KEY_PRESSED], 0, xev->xkey.keycode,
136+
xev->xkey.state, xev->xkey.time, &return_value);
137+
if(return_value)
138+
return GDK_FILTER_REMOVE;
139+
}
140+
141+
if (xev->type == GenericEvent) {
142+
XIDeviceEvent *ev;
143+
int return_value = FALSE;
144+
145+
ev = (XIDeviceEvent *) ((XGenericEventCookie *) xev)->data;
146+
147+
if (ev->evtype == XI_KeyPress) {
148+
g_signal_emit (grabber, signals[KEY_PRESSED], 0,
149+
ev->detail, ev->mods.effective, ev->time, &return_value);
150+
} else if (ev->evtype == XI_KeyRelease) {
151+
g_signal_emit (grabber, signals[KEY_RELEASED], 0,
152+
ev->detail, ev->mods.effective, ev->time, &return_value);
153+
}
154+
155+
if (return_value)
156+
return GDK_FILTER_REMOVE;
157+
}
158+
159+
160+
return GDK_FILTER_CONTINUE;
162161
}
163162

164163
static void
165164
sugar_key_grabber_init(SugarKeyGrabber *grabber)
166165
{
167-
GdkScreen *screen;
166+
GdkScreen *screen;
168167

169-
screen = gdk_screen_get_default();
170-
grabber->root = gdk_screen_get_root_window(screen);
171-
grabber->keys = NULL;
168+
screen = gdk_screen_get_default();
169+
grabber->root = gdk_screen_get_root_window(screen);
170+
grabber->keys = NULL;
172171

173-
gdk_window_add_filter(grabber->root, filter_events, grabber);
172+
gdk_window_add_filter(grabber->root, filter_events, grabber);
174173
}
175174

176175
/* grab_key and grab_key_real are from
@@ -230,20 +229,19 @@ grab_key (SugarKeyGrabber *grabber, Key *key, gboolean grab)
230229
**/
231230
void
232231
sugar_key_grabber_grab_keys(SugarKeyGrabber *grabber,
233-
const gchar *keys[],
234-
gint n_elements)
232+
const gchar *keys[],
233+
gint n_elements)
235234
{
236235
gint i;
237-
const char *key;
238236
Key *keyinfo = NULL;
239237
gint min_keycodes, max_keycodes;
240238

241239
XDisplayKeycodes(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()),
242240
&min_keycodes, &max_keycodes);
243241

244242
for (i = 0; i < n_elements; i++){
245-
keyinfo = g_new0 (Key, 1);
246-
keyinfo->key = g_strdup(keys[i]);
243+
keyinfo = g_new0 (Key, 1);
244+
keyinfo->key = g_strdup(keys[i]);
247245

248246
if (!egg_accelerator_parse_virtual (keys[i], &keyinfo->keysym,
249247
&keyinfo->keycode,
@@ -257,12 +255,12 @@ sugar_key_grabber_grab_keys(SugarKeyGrabber *grabber,
257255
continue;
258256
}
259257

260-
gdk_error_trap_push();
258+
gdk_x11_display_error_trap_push(gdk_display_get_default());
261259

262260
grab_key(grabber, keyinfo, TRUE);
263261

264-
gdk_flush();
265-
gint error_code = gdk_error_trap_pop ();
262+
gdk_display_flush(gdk_display_get_default());
263+
gint error_code = gdk_x11_display_error_trap_pop(gdk_display_get_default());
266264
if(!error_code)
267265
grabber->keys = g_list_append(grabber->keys, keyinfo);
268266
else if(error_code == BadAccess)
@@ -279,37 +277,37 @@ sugar_key_grabber_grab_keys(SugarKeyGrabber *grabber,
279277
gboolean
280278
sugar_key_grabber_is_modifier(SugarKeyGrabber *grabber, guint keycode, guint mask)
281279
{
282-
Display *xdisplay;
283-
XModifierKeymap *modmap;
284-
gint start, end, i, mod_index;
285-
gboolean is_modifier = FALSE;
286-
287-
xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default ());
288-
289-
modmap = XGetModifierMapping(xdisplay);
290-
291-
if (mask != -1) {
292-
mod_index = 0;
293-
mask = mask >> 1;
294-
while (mask != 0) {
295-
mask = mask >> 1;
296-
mod_index += 1;
297-
}
298-
start = mod_index * modmap->max_keypermod;
299-
end = (mod_index + 1) * modmap->max_keypermod;
300-
} else {
301-
start = 0;
302-
end = 8 * modmap->max_keypermod;
303-
}
304-
305-
for (i = start; i < end; i++) {
306-
if (keycode == modmap->modifiermap[i]) {
307-
is_modifier = TRUE;
308-
break;
309-
}
310-
}
311-
312-
XFreeModifiermap (modmap);
313-
314-
return is_modifier;
280+
Display *xdisplay;
281+
XModifierKeymap *modmap;
282+
gint start, end, i, mod_index;
283+
gboolean is_modifier = FALSE;
284+
285+
xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default ());
286+
287+
modmap = XGetModifierMapping(xdisplay);
288+
289+
if (mask != -1) {
290+
mod_index = 0;
291+
mask = mask >> 1;
292+
while (mask != 0) {
293+
mask = mask >> 1;
294+
mod_index += 1;
295+
}
296+
start = mod_index * modmap->max_keypermod;
297+
end = (mod_index + 1) * modmap->max_keypermod;
298+
} else {
299+
start = 0;
300+
end = 8 * modmap->max_keypermod;
301+
}
302+
303+
for (i = start; i < end; i++) {
304+
if (keycode == modmap->modifiermap[i]) {
305+
is_modifier = TRUE;
306+
break;
307+
}
308+
}
309+
310+
XFreeModifiermap (modmap);
311+
312+
return is_modifier;
315313
}

0 commit comments

Comments
 (0)