~bregma/geis/packaging-1.0.11

« back to all changes in this revision

Viewing changes to libutouch-geis-xcb/geis.c

  • Committer: Stephen M. Webb
  • Date: 2010-09-16 15:58:43 UTC
  • mfrom: (49.1.11 upstream)
  • Revision ID: stephen.webb@canonical.com-20100916155843-0238vbpioqf1byb4
New upstream release (LP: #640530)

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include <geis/geis.h>
21
21
 
22
22
#include "geis_instance.h"
 
23
#include "geis_xcb.h"
23
24
#include <stdlib.h>
24
25
 
25
26
 
 
27
static GeisXcb s_geis_xcb = NULL;
 
28
 
 
29
 
26
30
/**
27
31
 * @param[in]  win_info
28
32
 * @param[out] geis_instance
34
38
geis_init(GeisWinInfo *win_info, GeisInstance *geis_instance)
35
39
{
36
40
  *geis_instance = NULL;
 
41
  GeisXcbWinInfo *xcb_win_info = (GeisXcbWinInfo*)win_info->win_info;
37
42
 
38
43
  if (win_info->win_type != GEIS_XCB_FULL_WINDOW)
39
44
  {
40
45
    return GEIS_BAD_ARGUMENT;
41
46
  }
42
47
 
43
 
  *geis_instance = geis_instance_get((GeisXcbWinInfo*)win_info->win_info);
 
48
  if (!s_geis_xcb)
 
49
  {
 
50
    s_geis_xcb = geis_xcb_new(xcb_win_info);
 
51
  }
 
52
 
 
53
  *geis_instance = geis_xcb_create_instance(s_geis_xcb, xcb_win_info->window_id);
44
54
  return GEIS_STATUS_SUCCESS;
45
55
}
46
56
 
109
119
  switch (configuration_item)
110
120
  {
111
121
    case GEIS_CONFIG_UNIX_FD:
112
 
      *(int *)value = geis_instance_fd(geis_instance);
 
122
      *(int *)value = geis_xcb_fd(s_geis_xcb);
113
123
      status = GEIS_STATUS_SUCCESS;
114
124
      break;
115
125
  }
147
157
    return GEIS_BAD_ARGUMENT;
148
158
  }
149
159
 
150
 
  geis_instance_event_dispatch(geis_instance);
 
160
  geis_xcb_dispatch(s_geis_xcb);
151
161
  return GEIS_STATUS_SUCCESS;
152
162
}
153
163
 
159
169
 */
160
170
GeisStatus
161
171
geis_input_devices(GeisInstance    geis_instance,
162
 
                   GeisInputFuncs  funcs,
 
172
                   GeisInputFuncs *funcs,
163
173
                   void           *cookie)
164
174
{
165
175
  if (!geis_instance_is_valid(geis_instance))
167
177
    return GEIS_BAD_ARGUMENT;
168
178
  }
169
179
 
170
 
  return GEIS_UNKNOWN_ERROR;
 
180
  return geis_xcb_input_devices(s_geis_xcb, funcs, cookie);
171
181
}
172
182
 
173
183
 
191
201
  }
192
202
 
193
203
  return geis_instance_subscribe(geis_instance,
 
204
                                 s_geis_xcb,
194
205
                                 input_list,
195
206
                                 gesture_list,
196
207
                                 funcs,