Blank background around a large key when key release.
This commit is contained in:
		@ -419,6 +419,7 @@ on_key_released (EekKeyboard *keyboard,
 | 
				
			|||||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(widget);
 | 
					    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(widget);
 | 
				
			||||||
    cairo_t *cr;
 | 
					    cairo_t *cr;
 | 
				
			||||||
    EekBounds bounds, large_bounds;
 | 
					    EekBounds bounds, large_bounds;
 | 
				
			||||||
 | 
					    EekColor background;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* renderer may have not been set yet if the widget is a popup */
 | 
					    /* renderer may have not been set yet if the widget is a popup */
 | 
				
			||||||
    if (!priv->renderer)
 | 
					    if (!priv->renderer)
 | 
				
			||||||
@ -434,6 +435,18 @@ on_key_released (EekKeyboard *keyboard,
 | 
				
			|||||||
                     large_bounds.width,
 | 
					                     large_bounds.width,
 | 
				
			||||||
                     large_bounds.height);
 | 
					                     large_bounds.height);
 | 
				
			||||||
    cairo_clip (cr);
 | 
					    cairo_clip (cr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* blank background, in case that a large key does not fit in the
 | 
				
			||||||
 | 
					       keyboard */
 | 
				
			||||||
 | 
					    eek_renderer_get_background_color (priv->renderer,
 | 
				
			||||||
 | 
					                                       EEK_ELEMENT(priv->keyboard),
 | 
				
			||||||
 | 
					                                       &background);
 | 
				
			||||||
 | 
					    cairo_set_source_rgba (cr,
 | 
				
			||||||
 | 
					                           background.red,
 | 
				
			||||||
 | 
					                           background.green,
 | 
				
			||||||
 | 
					                           background.blue,
 | 
				
			||||||
 | 
					                           background.alpha);
 | 
				
			||||||
 | 
					    cairo_paint (cr);
 | 
				
			||||||
    eek_renderer_render_keyboard (priv->renderer, cr);
 | 
					    eek_renderer_render_keyboard (priv->renderer, cr);
 | 
				
			||||||
    cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
 | 
					    cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
 | 
				
			||||||
    cairo_destroy (cr);
 | 
					    cairo_destroy (cr);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user